.NET-SDK: Validierung von JSON-Fachdaten gegen Schema
Ausgangslage
Fachdaten müssen einem vorgegebenen Schema entsprechen, damit sich Sender und Subscriber auf ein einheitliches Datenformat verständigen können. Das Schema sollte sowohl vom Sender vor dem Versenden, als auch vom Subscriber beim Empfang der Fachdaten geprüft werden.
Fachdatenschemata werden anhand ihrer Schema-URI (schemaUri
) eindeutig identifiziert (siehe Fachschemareferenzen auf Fachstandards und Rahmenwerke abbilden. Die schemaUri
kann dabei entweder eine URL (https://...
) oder eine URN (urn:...
) sein. Wenn die schemaUri
eine URL ist, dann sollte diese auflösbar sein. Dazu muss das jeweilige Schema unter der angegebene URL abrufbar sein.
Um Fachdaten eines bestimmtem Schemas erzeugen bzw. auswerten zu können, muss das jeweilige Schema typischerweise bereits bei der Implementierung des Senders bzw. Subscribers bekannt sein. Die Verfügbarkeit des Schemas über eine URL erleichtert dabei die Verständigung auf ein gemeinsames Schema.
Warum?
Sender und Subscriber sollen bei der Validierung von Schemata unterstützt werden. Im Fokus dieses Issue steht dabei die Validierung von JSON-Schema.
Relevante Links und Bemerkungen
- Wollen wir die Möglichkeit schaffen, dem SDK JSON-Schema zu übergeben (z.B. via Config)?
- Soll das SDK selbstständig JSON-Schema von der angegebenen URL abrufen?
- Soll das SDK selbstständig JSON-Schema cachen? Dies würde einen State des SDK erfordern (bisher ist die Config des SDK statisch).
Akzeptanzkriterien
-
Das SDK unterstützt Sender bei der Validierung gegen das JSON-Schema der Fachdaten vor dem Versenden von Submissions. -
Das SDK unterstützt Subscriber bei der Validierung gegen das JSON-Schema der Fachdaten beim Empfangen von Submissions. -
Eine (temporäre) Nicht-Verfügbarkeit eines Webservers, der ein Schema unter einer Schema-URL bereitstellt, darf nicht dazu führen, dass Schema-Validierungen in den SDKs fehlschlagen. Dies hätte zur Folge, dass Onlinedienste nicht mehr in der Lage wären, Anträge zu versenden und Fachverfahren nicht mehr in der Lage wären, Anträge zu empfangen/zu bearbeiten. -
Die Schema-Validierung kann (z.B. für Tests auf der Testumgebung) deaktiviert werden. In diesem Fall, wird jedoch eine Warnung geloggt ( log.warn(...)
). -
Ist die Schema-Validierung aktiviert, dann müssen in einer Config-Datei alle verwendeten Schemata hinterlegt werden (EDIT: Das ist wichtig, damit der Versand von Anträgen via FIT-Connect nicht von der Verfügbarkeit eines Webservers abhängt, auf dem die Schemata bereitgestellt werden. Stattdessen sollen alle benötigten Schema-Files offline in der Configuration des SDKs hinterlegt werden können). -
Fehlschlagende Schema-Validierungen führen bei aktivierter Schema-Validierung zu einer Exception. -
Fehlende Schemata führen bei aktivierter Schema-Validierung zu einer Exception.
Weitere Issues (noch anzulegen)
- .NET-SDK: Validierung von JSON-Fachdaten gegen Schema (dieses Issue)
- Java-SDK: Validierung von XML-Fachdaten gegen Schema
- .NET-SDK: Validierung von XML-Fachdaten gegen Schema
Durchführungsplan (von Entwickler:in bei Umsetzungsplanung auszufüllen)
-
... -
... -
... -
Definition of Done wurde geprüft