Verwaltung von Destinations
Destinations verwalten
Das .NET SDK ermöglicht das Erstellen, Bearbeiten, Abrufen und Löschen von Zustellpunkten (auch Destinations genannt).
Voraussetzungen für die Verwaltung
- Credentials: Um Destinations zu verwalten, benötigen Sie eine Client-ID und ein Client-Secret.
- Schlüssel: Für die Erstellung einer Destination müssen Verschlüsselungs- und Signierschlüssel als JSON Web Keys (JWKs) bereitgestellt werden.
IFitConnectClient initialisieren
Das SDK wird über Dependency Injection eingebunden. Der Zugriff auf die Destination-Verwaltung erfolgt über IDestinationApiClient.
using Fitko.FitConnect.Sdk.Client;
using Fitko.FitConnect.Sdk.DependencyInjection;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
var configuration = new ConfigurationBuilder()
.AddJsonFile("appsettings.json")
.Build();
var client = new ServiceCollection()
.AddSingleton<IConfiguration>(configuration)
.AddFitConnect()
.BuildServiceProvider()
.GetRequiredService<IFitConnectClient>();
// Zugriff auf den Client für Destinations
var destinationService = client.DestinationApiService;
In einer ASP.NET Core- oder Generic-Host-Anwendung injizieren Sie IFitConnectClient direkt per Konstruktor-Injektion, nachdem Sie mit AddFitConnect() registrieren.
Zustellpunkt erstellen
Um eine neue Destination zu erstellen, verwenden Sie die Methode CreateDestination.
var createDestination = new CreateDestination(
DestinationStatus.Created,
"Mein Zustellpunkt",
contactInformation,
services,
callback,
"encryption-key-id",
encryptionPublicKey,
signingPublicKey,
metadataVersions,
replyChannel
);
var createdDestination = await destinationService.CreateDestination(createDestination);
Wichtige Modelle für die Erstellung:
- DestinationStatus:
Draft– Entwurf.Created– Erstellt, bereit zur Konfiguration.Active– Aktiviert und bereit für Anträge.Inactive– Deaktiviert (keine neuen Anträge möglich).Decommissioned– Stillgelegt.
- ContactInformation: Enthält
LegalName,Address,Phone,EmailundUnit. - DestinationRelatedService: Definiert die unterstützten Leistungen (
Identifierals URN,Regions,SubmissionSchemas). - Callback: Konfiguration für Benachrichtigungen (
UrlundSecretfür HMAC). - ReplyChannel: Unterstützte Rückkanäle (z. B.
Elster,Fink,DeMail,EMail,FitConnect).
Vorhandene Destination aktualisieren oder patchen
Es gibt zwei Möglichkeiten, eine bestehende Destination zu ändern:
Vollständiges Update
Aktualisiert das gesamte Destination-Objekt.
var updatedDestination = await destinationService.UpdateDestination(destination);
Teilspezifisches Patch
Aktualisiert nur bestimmte Felder einer Destination.
var patch = new PatchDestination {
Status = "active",
MetadataVersions = new List<string> { "1.5.0" }
};
var patchedDestination = await destinationService.PatchDestination(destinationId, patch);
Destination löschen
Eine Destination kann gelöscht werden, solange sie sich im Status Created befindet.
await destinationService.DeleteDestination(destinationId);
Destination-Liste abrufen
Ruft eine paginierte Liste der selbst angelegten Destinations ab.
// offset: Startpunkt, limit: maximale Anzahl
var result = await destinationService.ListDestinations(offset: 0, limit: 10);
foreach (var destination in result.Destinations) {
Console.WriteLine($"Destination: {destination.Name} (ID: {destination.DestinationId})");
}
Öffentliche Schlüssel verwalten
Öffentliche Schlüssel abrufen
Ruft alle öffentlichen Schlüssel einer Destination ab.
var keys = await destinationService.GetPublicKeys(destinationId);
Schlüssel auflisten (paginiert)
var keyList = await destinationService.ListKeys(destinationId, offset: 0, limit: 10);
Neuen Schlüssel hinzufügen
await destinationService.AddKey(destinationId, newKey);
Zusätzliche Funktionen
- GetDestination: Ruft Details zu einer spezifischen Destination ab (
await destinationService.GetDestination(destinationId)). - Anhangs-Limits: Über
RequestAttachmentLimitChangeundGetDestinationAttachmentLimitkönnen Limits für Anhänge verwaltet werden.
Fachausdrücke erklärt
Eine Übersicht über wichtige Fachausdrücke finden Sie im Glossar.