Zum Hauptinhalt springen

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:

  1. 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.
  2. ContactInformation: Enthält LegalName, Address, Phone, Email und Unit.
  3. DestinationRelatedService: Definiert die unterstützten Leistungen (Identifier als URN, Regions, SubmissionSchemas).
  4. Callback: Konfiguration für Benachrichtigungen (Url und Secret für HMAC).
  5. 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 RequestAttachmentLimitChange und GetDestinationAttachmentLimit können Limits für Anhänge verwaltet werden.

Fachausdrücke erklärt

Eine Übersicht über wichtige Fachausdrücke finden Sie im Glossar.