Getting Started

Fehlerbehandlung

Wie man API-Fehler elegant handhabt

Fehlerbehandlung

Die Blitz Rocket API verwendet standardmäßige HTTP-Statuscodes und liefert konsistente Fehlerantworten.

HTTP-Statuscodes

StatuscodeBedeutung
200OK — Anfrage erfolgreich
201Created — Ressource erfolgreich erstellt
400Bad Request — Ungültige Parameter oder fehlende Pflichtfelder
401Unauthorized — Fehlender oder ungültiger API-Schlüssel
403Forbidden — Unzureichende Berechtigungen (z.B. öffentlicher Schlüssel bei privatem Endpunkt)
404Not Found — Ressource existiert nicht
429Too Many Requests — Rate-Limit überschritten
500Internal Server Error — Fehler auf unserer Seite

Fehlerantwort-Format

Alle Fehlerantworten folgen dieser Struktur:

json
{
  "success": false,
  "error": "Eine für Menschen lesbare Fehlerbeschreibung"
}

Häufige Fehler

Fehlender API-Schlüssel

json
// Status: 401
{
  "success": false,
  "error": "Fehlender oder ungültiger API-Schlüssel"
}

Privater Schlüssel erforderlich

json
// Status: 403
{
  "success": false,
  "error": "Dieser Endpunkt erfordert einen privaten API-Schlüssel"
}

Ressource nicht gefunden

json
// Status: 404
{
  "success": false,
  "error": "Wettbewerb nicht gefunden"
}

Validierungsfehler

json
// Status: 400
{
  "success": false,
  "error": "Entweder E-Mail oder Telefon ist erforderlich"
}

Fehlerbehandlung im Code

javascript
async function makeApiRequest(endpoint) {
  const response = await fetch(`https://blitzrocket.com/api/v1${endpoint}`, {
    headers: { "x-api-key": process.env.BLITZROCKET_API_KEY },
  });

  const data = await response.json();

  if (!data.success) {
    switch (response.status) {
      case 401:
        throw new Error("Ungültiger API-Schlüssel. Überprüfen Sie Ihre Zugangsdaten.");
      case 403:
        throw new Error("Unzureichende Berechtigungen. Verwenden Sie einen privaten API-Schlüssel.");
      case 404:
        throw new Error(`Ressource nicht gefunden: ${data.error}`);
      case 429:
        throw new Error("Rate-Limit erreicht. Bitte mit Verzögerung erneut versuchen.");
      default:
        throw new Error(`API-Fehler: ${data.error}`);
    }
  }

  return data.data;
}