Getting Started

Gestion des erreurs

Comment gérer les erreurs d'API avec élégance

Gestion des erreurs

L'API Blitz Rocket utilise des codes d'état HTTP standard et renvoie des corps de réponse d'erreur cohérents.

Codes d'état HTTP

Code d'étatSignification
200OK — Requête réussie
201Créé — Ressource créée avec succès
400Mauvaise requête — Paramètres invalides ou champs obligatoires manquants
401Non autorisé — Clé API manquante ou invalide
403Interdit — Permissions insuffisantes (par exemple, clé publique sur un point de terminaison privé)
404Non trouvé — La ressource n'existe pas
429Trop de requêtes — Limite de taux dépassée
500Erreur interne du serveur — Chargement... de notre côté

Format de la réponse d'erreur

Toutes les réponses d'erreur suivent cette structure :

json
{
  "success": false,
  "error": "Une description lisible par un humain de l'erreur"
}

Erreurs courantes

Clé API manquante

json
// Statut : 401
{
  "success": false,
  "error": "Clé API manquante ou invalide"
}

Clé privée requise

json
// Statut : 403
{
  "success": false,
  "error": "Ce point de terminaison nécessite une clé API privée"
}

Ressource non trouvée

json
// Statut : 404
{
  "success": false,
  "error": "Concours non trouvé"
}

Erreur de validation

json
// Statut : 400
{
  "success": false,
  "error": "Soit l'email, soit le téléphone est requis"
}

Gestion des erreurs dans le 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("Clé API invalide. Vérifiez vos identifiants.");
      case 403:
        throw new Error("Permissions insuffisantes. Utilisez une clé API privée.");
      case 404:
        throw new Error(`Ressource non trouvée : ${data.error}`);
      case 429:
        throw new Error("Limite de taux atteinte. Réessayez avec un délai.");
      default:
        throw new Error(`Erreur API : ${data.error}`);
    }
  }

  return data.data;
}