API-Fehler: klare Maßnahmen ohne offengelegte Geheimnisse

Kurz erklärt

Fehlerantworten sollen bei Korrektur, Anmeldung, Berechtigungsanfrage oder Warten helfen. Öffentliche Meldungen und interne Diagnosen benötigen unterschiedliche Details.

Unbesetzter Sicherheitsbereich mit Servern und Netzwerken Illustration · fiktive Szene
In diesem Artikel

Status, Typ und Vorkommnis trennen

RFC 9457 definiert application/problem+json. Einen stabilen Problemtyp und verständliche Details verwenden; Clients sollen keine übersetzten Sätze zur Entscheidung auswerten. Ein vorhandenes status-Feld muss zum tatsächlich gesendeten HTTP-Status passen.

StatusHTTP-BedeutungMögliche Behandlung
400Fehlerhafte AnfrageVor erneutem Versuch korrigieren.
401Gültige Anmeldedaten fehlenNachweise und vorgesehenen Mechanismus prüfen.
403Verstandene Anfrage wird verweigertRechte prüfen; Wiederholen erteilt keine Rechte.
503Dienst vorübergehend nicht verfügbarBegrenzt warten und nur bei Eignung wiederholen.

Fehlerpfade vorhersehbar gestalten

  • Codes, Formate und erwartete Behandlung dokumentieren. Auch leere Antworten, Nicht-JSON vom Gateway, Verbindungsabbrüche und Timeouts testen.
  • Eingaben und Rechte serverseitig prüfen. Erwartete Fehler behandeln, ohne unbekannte Störungen zu verbergen; fachliches Scheitern nicht als Erfolg tarnen.
  • Eine für den Support nutzbare Korrelationskennung zurückgeben. Stacktraces, interne Abfragen, Passwörter und Token aus öffentlichen Antworten entfernen.

Nur sinnvoll wiederholen

5xx erlaubt keine unbegrenzten Versuche. Vertrag, Vorgangszustand, Idempotenz und Gesamtfrist verbinden. Fehler mit minimaler bereinigter Reproduktion melden; nach Korrektur Originalfall und benachbarte Zugriffsverweigerungen erneut prüfen.

Primärquellen

API-Fehler sollten die Maßnahmen steuern, ohne Informationen preiszugeben.

Der HTTP-Status liefert eine erste Kategorie, Clients benötigen jedoch möglicherweise einen stabilen Typ und nützliche Details. RFC 9457 beschreibt eine häufige Problemstruktur; er rechtfertigt nicht die Offenlegung interner Traces oder sensibler Daten.

  • Trennen Sie dauerhafte Ablehnung, korrigierbare Eingabe und temporären Fehler.
  • Dokumentieren Sie Typ, Status und mögliche Client-Aktionen für jeden wichtigen Fehler.
  • Testen Sie, ob Antworten keine Geheimnisse oder unnötige vollständige Nutzdaten enthalten.

Primärquelle: IETF RFC 9457 — Problem Details for HTTP APIs. Verwandte Methode: den praktischen Leitfaden lesen.

API-Wiederholungen: das gesamte Zeitbudget zählen

Fehlerregeln brauchen eine Aufrufgrenze und Gesamtfrist.

Fiktiver Lehrfall: Die Zahlen beschreiben weder CIE noch Kunden.

Fiktives Modell: vier Aufrufe bis je 250 ms und Wartezeiten 100, 200, 400 ms. Jitter, Verbindung, Warteschlangen und lokale Prüfung fehlen.

Versuche insgesamt
41 + 3
Wartezeiten insgesamt (ms)
700100 + 200 + 400
Modellbudget (ms)
17004 × 250 + 700
Die Folge zerlegen
SchrittMaximaler Aufruf (ms)Nächste Wartezeit (ms)
Versuch 1250100
Versuch 2250200
Versuch 3250400
Versuch 42500
Gesamt1000700
Modellzeiten (ms)
  • Aufrufzeit1.000
  • Gesamte Wartezeit700
  • Gesamtfrist (ms)1.500

Prüfungen vor der Einordnung

  1. 1.000 + 700 = 1.700 ms überschreiten die Frist von 1.500 ms.
  2. Gesamtfrist weitergeben und doppelte Wirkung ausschließen; Timeout beweist keinen entfernten Abbruch.

Ein Wiederholungsbudget ausprobieren

n × T + W × (2^(n−1) − 1)

Verwandte Methode: den praktischen Leitfaden lesen.

API-Fehler: Typen, Status und Nachweise

Ausführliche Hinweise stehen in dieser Ausgabe auf Englisch zur Verfügung.

Handle an error without parsing its sentence

An API client may receive a translated title, missing member or unfamiliar extension. Preserve decisions based on the documented type and HTTP status, then connect a safe action to the context.

  • Compare received status and JSON status without silently replacing either.
  • Test absent type, string status instead of a number, and an unknown extension.
  • Separate person-facing text, business code and occurrence reference.

Explore problem types and eight fictional responses →

IETF · M. Nottingham, E. Wilde, S. Dalal · RFC 9457 · July 2023 · obsoletes RFC 7807 · §3.1, §3.2, §4.2, §5