Fehlerbehandlung
API-Fehlercodes verstehen und richtig behandeln.
Format von Fehlerantworten
Alle Fehler folgen einem einheitlichen Format:
{
"error": {
"code": "invalid_request",
"message": "The 'message' field is required.",
"param": "message"
},
"meta": {
"request_id": "req_abc123"
}
}HTTP-Statuscodes
| Status | Beschreibung |
|---|---|
200 | Erfolgreich |
400 | Ungültige Anfrage – ungültige Parameter |
401 | Nicht authentifiziert – API-Schlüssel fehlt oder ist ungültig |
403 | Verboten – unzureichende Berechtigungen |
404 | Nicht gefunden – Ressource existiert nicht |
429 | Zu viele Anfragen – Ratenbegrenzung überschritten |
500 | Interner Serverfehler |
Fehlercodes
| Code | Status | Beschreibung |
|---|---|---|
invalid_request | 400 | Anfragekörper ist ungültig oder Pflichtfelder fehlen |
invalid_api_key | 401 | API-Schlüssel ist ungültig oder abgelaufen |
insufficient_permissions | 403 | API-Schlüssel besitzt nicht die nötigen Rechte |
not_found | 404 | Angeforderte Ressource wurde nicht gefunden |
rate_limit_exceeded | 429 | Zu viele Anfragen in einem Zeitraum |
internal_error | 500 | Unerwarteter Fehler |
Wiederholungsstrategie
Verwende bei 429- und 5xx-Fehlern exponentiell steigende Wartezeiten:
async function fetchWithRetry(url, options, maxRetries = 3) {
for (let i = 0; i < maxRetries; i++) {
const response = await fetch(url, options);
if (response.ok) return response;
if (response.status === 429 || response.status >= 500) {
const delay = Math.pow(2, i) * 1000;
await new Promise((r) => setTimeout(r, delay));
continue;
}
throw new Error(`API error: ${response.status}`);
}
throw new Error("Max retries exceeded");
}