Fehlerhandling: Problem Details (RFC 7807) & klare Messages.
Fehlerhandling in APIs: Problem Details und klare Fehlercodes
"Something went wrong" hilft niemandem. Nicht dem Nutzer, nicht dem Entwickler.
Warum API-Fehlerhandling so wichtig ist
Wenn eine API schlechte Fehlermeldungen produziert, muss der Client-Entwickler Fehlerpfade durch Ausprobieren verstehen. Das kostet Zeit, erzeugt Frustration, und führt zu schlechten Client-Implementierungen (weil Fehlerhandling weggelassen wird, weil es eh nicht hilft).
Gutes Fehlerhandling ist Teil der Developer Experience.
RFC 7807 – Problem Details
Der Standard für HTTP-API-Fehlermeldungen. Eine Fehler-Response sieht so aus:
{
"type": "https://euredomain.de/errors/validation-error",
"title": "Validation Error",
"status": 422,
"detail": "The field 'email' must be a valid email address.",
"instance": "/api/users",
"errors": [
{"field": "email", "message": "Invalid email format"}
]
}
Maschinenlesbar, menschenlesbar, erweiterbar. Das ist der Standard.
HTTP Status Codes richtig einsetzen
200: Erfolg. 201: Ressource erstellt. 204: Erfolg ohne Response Body. 400: Client-Fehler (ungültige Eingabe). 401: Nicht authentifiziert. 403: Nicht autorisiert (aber authentifiziert). 404: Ressource nicht gefunden. 422: Validierungsfehler. 429: Rate Limit überschritten. 500: Server-Fehler.
Bitte nicht: 200 für Fehler zurückgeben und den Status im Body codieren. Das bricht HTTP-Semantik und verwirrt jeden API-Client.
Fehlercodes als Vertrag
Anwendungsspezifische Fehlercodes (zusätzlich zum HTTP Status Code) ermöglichen dem Client, spezifisch auf Fehlersituationen zu reagieren. "code": "USER_NOT_VERIFIED" ist informativer als HTTP 403 allein.
Checkliste Fehlerhandling
- [ ] RFC 7807 Problem Details als Standard implementiert
- [ ] HTTP Status Codes semantisch korrekt verwendet
- [ ] Anwendungsspezifische Fehlercodes dokumentiert
- [ ] Validierungsfehler mit Feldnamen zurückgegeben
- [ ] Keine sensiblen Informationen in Fehler-Responses
- [ ] Server-Fehler geloggt, aber nicht an Client zurückgegeben
API-Fehlerhandling überarbeiten?
markom.digital verbessert API-Fehlerhandling – von der Spezifikation bis zur Implementierung.