Anforderungen zur Fehlerbehandlung
Diese Seite listet und beschreibt Anforderungen zu Fehlercodes und -konstellationen im TI-Flow-Fachdienst.
Allgemeine Anforderungen zur Fehlerbehandlung
Der TI-Flow-Fachdienst MUSS beim Aufruf einer Operation im Http-Response-Header einen HTTP-Status-Codes gemäß [RFC7231] zurückgeben.
Der TI-Flow-Fachdienst MUSS im Fehlerfall (http-Statuscodes >= 400) Hinweise zur Fehlerursache
- im der inneren http-Response-Body als FHIR-Ressource OperationOutcome bei FHIR-Schnittstellen
- im der inneren http-Response-Body in einer JSON-Struktur mit den Feldern `errorCode` und `errorDetail` bei non FHIR-Schnittstellen
- falls keine innere VAU-Response existiert, in einem "äußeren" http-Response-Body in einer JSON-Struktur mit den Feldern `errorCode` und `errorDetail`
an den Client zurückgeben, ohne Implementierungsdetails (z.B. kein Stacktrace) preiszugeben und dabei sicherstellen, dass personenbezogene oder medizinische Daten, falls für die qualifizierte Fehlerbeschreibung notwendig, ausschließlich in der VAU-verschlüsselten inneren http-Response übertragen werden.
Anforderungen zu Endpunt-übergreifenden Fehlercodes
Der TI-Flow-Fachdienst muss allgemeine Anforderungen zu Fehlercodes umsetzen, um wiederkehrende Fehlerszenarien umzusetzen.
Der TI-Flow-Fachdienst MUSS an den Schnittstellen prüfen, dass der HTTP-Request well-formed ist und andernfalls die Anfrage mit dem folgenden Fehler:
| HTTP-Code |
400 - Bad Request |
| Severity |
error |
| Code |
invalid |
| Details Code |
MSG_BAD_FORMAT |
| Details Text |
Invalid request format |
abbrechen, damit nur korrekt formattierte Requests verarbeitet werden.
Der TI-Flow-Fachdienst MUSS für den Fall, dass ein Request in einen Timeout läuft die Anfrage mit folgenden Fehler:
| HTTP-Code |
408 - Request Timeout |
| Severity |
error |
| Code |
timeout |
| Details Code |
TIFLOW_TIMEOUT |
| Details Text |
The request timed out. |
abbrechen, damit Clients über Timeouts informiert werden und entsprechend reagieren können.
Der TI-Flow-Fachdienst MUSS im Falle eines internen Serverfehlers die Anfrage mit dem folgenden Fehler:
| HTTP-Code |
500 - Internal Server Error |
| Severity |
error |
| Code |
transient |
| Details Code |
TIFLOW_INTERNAL_ERROR |
| Details Text |
Internal Server Error |
abbrechen, damit Clients über transiente Serverfehler informiert werden und eine Wiederholung in Erwägung ziehen können.
Anforderungen zu Fehlercodes in Query- und Operation-APIs
Die folgenden Anforderungen definieren spezifische Fehlercodes, die in verschiedenen Fehlerkonstellationen bei Query- und Operation-API Endpunkten verwendet werden.
Der TI-Flow-Fachdienst MUSS im Falle, dass ein unbekannter Ressourcentyp angefragt wird, die Anfrage mit dem folgenden Fehler:
| HTTP-Code |
404 - Not Found |
| Severity |
error |
| Code |
not-found |
| Details Code |
MSG_UNKNOWN_TYPE |
| Details Text |
Unknown resource type |
abbrechen, damit Clients eindeutig identifizieren können, dass der angeforderte Ressourcentyp nicht bekannt ist.
Der TI-Flow-Fachdienst MUSS im Falle, dass eine unbekannte Ressource-ID angefragt wird, die Anfrage mit dem folgenden Fehler:
| HTTP-Code |
404 - Not Found |
| Severity |
error |
| Code |
not-found |
| Details Code |
MSG_RESOURCE_ID_FAIL |
| Details Text |
Resource is not known |
abbrechen, damit Clients erkennen können, dass eine Ressource mit der angeforderten ID nicht existiert.
Der TI-Flow-Fachdienst MUSS im Falle, dass auf eine gelöschte Ressource zugegriffen wird, die Anfrage mit dem folgenden Fehler:
| HTTP-Code |
410 - Gone |
| Severity |
error |
| Code |
not-found |
| Details Code |
MSG_DELETED |
| Details Text |
Resource was deleted |
abbrechen, damit Clients erkennen können, dass eine Ressource dauerhaft gelöscht wurde.
Der TI-Flow-Fachdienst MUSS im Falle, dass ein unbekannter Suchparameter verwendet wird, die Anfrage mit dem folgenden Fehler:
| HTTP-Code |
400 - Bad Request |
| Severity |
error |
| Code |
invalid |
| Details Code |
MSG_PARAM_UNKNOWN |
| Details Text |
Unknown search parameter |
abbrechen, damit Clients erkennen können, dass ein verwendeter Suchparameter nicht unterstützt wird.
Der TI-Flow-Fachdienst MUSS im Falle, dass ungültige Query-Parameter verwendet werden, die Anfrage mit dem folgenden Fehler:
| HTTP-Code |
400 - Bad Request |
| Severity |
error |
| Code |
invalid |
| Details Code |
MSG_BAD_SYNTAX |
| Details Text |
Invalid query parameter(s) |
abbrechen, damit Clients erkennen können, dass die verwendeten Query-Parameter syntaktisch oder semantisch ungültig sind.
Der TI-Flow-Fachdienst MUSS im Falle, dass eine unbekannte FHIR-Operation angefragt wird, die Anfrage mit dem folgenden Fehler:
| HTTP-Code |
404 - Not Found |
| Severity |
error |
| Code |
not-found |
| Details Code |
MSG_UNKNOWN_OPERATION |
| Details Text |
unknown FHIR http operation |
abbrechen, damit Clients erkennen können, dass die angeforderte FHIR-Operation nicht unterstützt wird.