Fehlermeldungen
Die OpenPLZ API liefert Fehlermeldungen als RFC 9457-formatierte JSON-Objekte zurück.
Was ist RFC 9457?
RFC 9457 ist ein Standard der Internet Engineering Task Force (IETF), der ein strukturiertes Format zur Darstellung von Fehlern in HTTP-APIs definiert.
Problem Details
Im Zentrum von RFC 9457 steht das Problem Details-Objekt, ein JSON-Dokument, das bei Fehlern im Response-Body der API-Abfrage enthalten ist. OpenPLZ API implementiert es mit folgenden Feldern:
type
(string)-
Eine URI-Referenz, die den Typ des Fehlers identifiziert. Dies ist in der Regel ein Verweis auf die Spezifikation des HTTP-Statuscodes im Web.
Beispiel:
"https://tools.ietf.org/html/rfc9110#section-15.5.1"
title
(string)-
Eine kurze, menschenlesbare Zusammenfassung des Problems.
Beispiel:
"One or more validation errors occurred."
status
(integer)-
Der HTTP-Statuscode, der den Fehler beschreibt. Er sollte mit dem Statuscode im HTTP-Response-Header übereinstimmten.
Beispiel: 400
errors
(object)-
(Optional) Eine JSON-Objekt mit weiteren Details zum Fehler.
Beispiel:
{ "pageSize": [ "The field pageSize must be between 1 and 50." ] }
traceId
(string)-
Ein eindeutiger Identifikator, der zur Nachverfolgung in verteilten Systemen genutzt werden kann.
Beispiel:
"00-abc123def456789ghi-xyz987uvw654321tqr-01"
Extension Members
Die Felder type
, title
und status
sind wohldefiniert in RFC 9457. Die Felder errors
und traceId
sind sogenannte Extension Members, also eine Erweiterung der Standardfelder.
Beispiel
Der API-Aufruf
https://openplzapi.org/de/Streets?name=Pariser%20Platz&locality=Berlin&page=1&pageSize=99
resultiert in folgender Fehlermeldung:
{
"type": "https://tools.ietf.org/html/rfc9110#section-15.5.1",
"title": "One or more validation errors occurred.",
"status": 400,
"errors": {
"pageSize": [
"The field pageSize must be between 1 and 50."
]
},
"traceId": "00-0274bb16dcdf462bf27a7faedeacc79f-05c5cd5b5d411f8e-00"
}
Die Analyse des Fehlers:
-
Der Server kann die Anfrage nicht bearbeiten, da der Aufruf nicht korrekt formuliert ist (HTTP-Fehler-Code 400: Bad Request).
-
Offensichtlich ist etwas bei der Validierung der Aufrufparameter passiert ("One or more validation errors occurred.").
-
Und ja, so ist es auch, der Parameter
pageSize
hat einen Wert (99) außerhalb der Gültigkeit (nur von 1-50).