Methodensignaturen Java-SDK [M]
Warum?
Als Vorbereitung zur Erstellung des Java-SDK (#15 (closed)) soll die Funktionalität und Benutzbarkeit des Java-SDK auf Grundlage eines Grundgerüstes für eine Java-Bibliothek abgestimmt werden. Hierfür soll eine Library erstellt werden, die nur Methodensignaturen und JavaDoc (aber keine Implementierungen) enthält.
Relevante Links und Bemerkungen
- SDK-Konzept im Wiki
- inoffizielles Python-SDK
- Code-Generierung aus OpenAPI-Spec?
- GGf. Code zwischen Zustelldienst und SDK sharen?
- Gedanken über Versionsmanagement der API
- Für Rückkanal wird voraussichtlich OpenAPI 3.1 benötigt. Ggf. beachten bei Code-Generierung (Tools für OpenAPI 3.1 sind noch nicht so weit: https://github.com/OpenAPITools/openapi-generator/issues/9083)
Akzeptanzkriterien
- Im GitLab findet sich unter https://git.fitko.de/fit-connect/sdk-java ein Grundgerüst des SDKs mit Methodensignaturen.
- Jede Methode ist ausführlich mittels JavaDoc dokumentiert.
-
Alle Methoden werfen eine
NotImplementedException
(o.ä.) -
Die folgenden Funktionalitäten sind abgebildet (nicht jede Funktionalität muss zwangsläufig über eine eigene Methode abgebildet werden, ggf. reicht auch ein
// TODO: implement xyz
):- Sender + Subscriber: Abruf von OAuth-Tokens
- Sender: Prüfung von öffentlichen Schlüsseln und Zertifikatsketten + OCSP-Check (vgl. #119 (closed))
- Sender: Verschlüsselung von Fachdaten (JSON, XML) mittels JWE
- Sender: Verschlüsselung von Anhängen (Binärdaten) mittels JWE
- Sender: Korrekte Erzeugung eines Metadatensatzes inkl. Hashwerte
- Subscriber: Entschlüsselung von Fachdaten (JSON oder XML) mittels JWE
- Subscriber: Entschlüsselung von Anhängen (Binärdaten) mittels JWE
- Subscriber: Prüfung der empfangenen Metadaten gegen das zugehörige JSON-Schema
- Subscriber: Prüfung der Hashwerte aus dem Metadatensatz.
- Subscriber: SET-Erstellung inkl. Signaturerzeugung
- Sender + Subscriber: SET-Empfang inkl. Signaturprüfung
-
Sender + Subscriber: Unterstüzung / Abstraktion der API-Nutzung (
fitconnect.sendSubmission(metadata, destinationID, ...)
o.ä.) für die oben genannten Use-Cases - Logging (Logging-Modul muss von außen kommen)
-
Es ist vorgesehen, dass das SDK auch über einen HTTP-Proxy genutzt werden kann (vgl.
ProxyRestTemplate
im Zustelldienst).
Durchführungsplan (vom Entwickler bei Storyplanung auszufüllen)
- Lesen der Wiki-Seite, Klärung von offenen Fragen
- ...
- ...
- ...
- Definition of Done wurde geprüft