Fehlercodes und Gründe
In diesem Dokument wird die Drive API behandelt. Wenn du die Drive (classic)-API verwendest, lies den Leitfaden zu Drive (classic)-Fehlern.
Drive-API zeigt den Erfolg oder Misserfolg einer API-Anfrage anhand standardmäßiger HTTP-Antwortcodes an.
Die folgenden Codebereiche gelten für alle Endpunkte:
- 2xx – Vorgang war erfolgreich.
- 4xx – Vorgang ist aufgrund eines Client-Fehlers fehlgeschlagen. Ein erneuter Versuch würde zum selben Ergebnis führen.
- 5xx – Vorgang ist aufgrund eines vorübergehenden Fehlers seitens DoorDash fehlgeschlagen, bitte später erneut versuchen.
- Sollte das Problem weiterhin bestehen, sag uns bitte Bescheid.
Die folgenden Codes haben über alle Endpunkte hinweg dieselbe Bedeutung:
- 200 – Es besteht kein Problem.
- 400 – Die Anfrage war syntaktisch ungültig und konnte nicht bearbeitet werden.
- Dieser Fehler wird häufig durch fehlende Parameter oder Parameter mit falschen Werttypen verursacht.
- 401 – Authentifizierungsfehler
- Dieser Fehler wird wahrscheinlich verursacht, da es sich um ein fehlerhaftes oder abgelaufenes JWT-Token handelt. DoorDash konnte somit die Identität des Anrufers nicht auf sichere Weise verifizieren.
- 403 – Autorisierungsfehler
- Identität konnte auf sichere Weise verifiziert werden, die Lieferidentität erlaubt jedoch weder den angeforderten Vorgang noch den Zugriff auf die Daten.
- 404 – Die Ressource existiert nicht.
- Dieser Fehler kann durch das Aufrufen einer falschen URL oder durch die Suche nach einer nicht vorhandenen Lieferung verursacht werden.
- 409 – Der Systemstatus unterbindet die Fortsetzung des Vorgangs.
- Dieser Fehler wird meist durch die Erstellung einer neuen Lieferung mit einer doppelten ID verursacht oder durch den Versuch, eine Lieferung zu stornieren, die nicht aktiv ist.
- 422 – Logischer Validierungsfehler
- Die Anfrage wurde korrekt formatiert, der Vorgang kann jedoch nicht ausgeführt werden.
- Beispiel: die Anforderung einer Lieferung außerhalb des Servicegebiets.
- 429 – Zu viele Anfragen
- Es wurden in kurzer Zeit zu viele Anfragen gestellt, bitte warten und dann erneut versuchen.
Standardformat für Fehlermeldungen
Bei der Ausgabe eines Fehlers wird das folgende Standardformat verwendet. Einzelne Fehler können bei Bedarf zusätzliche Felder enthalten, aber bei allen Fehlerrückmeldungen kommen garantiert mindestens die folgenden Felder vor.
{
"code": "validation_error",
"message": "Validation Failed"
}
code
ist eine maschinenlesbare Aufzählung; bestimmte Werte sind vorgangsspezifisch.
message
ist eine für Menschen lesbare Erklärung des Fehlers in Englisch; diese wird nur zu Debugging-Zwecken eingefügt.
Validierungsfehler
Validierungsfehler (die 400er-Fehler aus der obigen Liste) haben zusätzliche Eigenschaften:
{
"code": "validation_error",
"message": "Validation Failed",
"field_errors": [
{
"field": "order_value",
"error": "Numeric value (100000000000) out of range of int (-2147483648 - 2147483647)"
}
]
}
field_errors
ist ein Array aller Validierungsfehler. Bitte beachte, dass die Rückmeldung aller Fehler von den spezifischen Eingabedaten abhängt.
Jeder Validierungsfehler wird durch ein Objekt mit zwei unterschiedlichen Eigenschaften dargestellt:
field
– entweder der Name des Feldes, Name des Parameters oder der body
, falls kein bestimmtes Feld zugeordnet werden kann.
error
– eine für Menschen lesbare Erklärung des Fehlers in Englisch; diese wird nur zu Debugging-Zwecken eingefügt.
Logische Fehler
Logische Fehler (z. B. „die angeforderte Lieferdistanz ist zu weit“) folgen dem Standardformat für Fehlermeldungen. Optionale zusätzliche Eigenschaften und mögliche Werte des code
unterscheiden sich von Vorgang zu Vorgang und werden neben diesen Eigenschaften beschrieben.
Asynchrone Fehler
Manche Vorgänge können auch dann fehlschlagen, wenn es zunächst eine erfolgreiche Rückmeldung gab. Eine neue Lieferung kann bspw. auch dann eine Fehlermeldung hervorrufen, wenn sie bereits erstellt wurde, die Zahlung jedoch nicht durchgeführt werden konnte.
Asynchrone Fehler werden als Lieferstatus angezeigt. Um diese Fehler abzurufen, müssen Kund:innen die letzten Lieferinformationen anfordern. Sie können dann den Status dort einsehen.