MVP Java-SDK - Part 1 [L]
Warum?
Ziel des MVP ist es, mit minimalem Aufwand eine erste veröffentlichungsfähige Version des SDKs zu entwickeln.
Out-of-Scope:
- Erstellung des Grundgerüst für Methodensignaturen -> #414 (closed)
- Aufgaben zur Implementierung der API-Calls aus #427 (closed)
Relevante Links und Bemerkungen
- SDK-Konzept im Wiki
- inoffizielles Python-SDK
- Die kommunale Dienstleister Komm.One in BaWü hätte Interesse am JAVA SDK und würde auch aktiv mit programmieren wollen. Kontakt kann über die FITKO hergestellt werden.
- Gedanken zu Dependency-Verwaltung -> Maven
- Wollen wir Requests via Proxy supporten? ->
Für das MVP keine explizite Anforderung, kann aber ggf. sinnvoll sein oder später Anforderung werden. Via Docker simulierbar.neues AC - Codebeispiele: https://git.fitko.de/fit-connect/examples/
Akzeptanzkriterien
- Die folgenden auf Basis des SDK-Grundgerüst vorgegebenen Funktionalitäten
(außer API-Calls!)sind vollständig implementiert.- Sender + Subscriber: Abruf von OAuth-Tokens
- 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 Hashwerte aus dem Metadaensatz.
- Alle Vorgaben aus den Vorgaben für kryptographische Verfahren werden eingehalten.
- Für die implementierten Funktionalitäten des SDK liegen Unit Tests vor.
- Es gibt einen Integrationstest, der das SDK verwendet. -> https://git.fitko.de/fit-connect/zustelldienst-api-tests/
- Die Library ist thread-safe.
- Die Library kann auch hinter einem HTTP-Proxy genutzt werden.
- Es werden nach Möglichkeit keine neuen Libraries im Vergleich zu den Implementierungen im Zustelldienst eingebunden.
-
Die Codebeispiele in der Dokumentation nutzen des SDK-> #557
Durchführungsplan (vom Entwickler bei Storyplanung auszufüllen)
- Lesen der Wiki-Seite, Klärung von offenen Fragen
- Im Wiki Zusammentragen, was es aktuell für diese Programmiersprache schon an Code gibt (Tests, Tools, Beispiele, Zustelldienst-Code, etc.)
- ...
- ...
- Definition of Done wurde geprüft