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'état | Signification |
|---|---|
200 | OK — Requête réussie |
201 | Créé — Ressource créée avec succès |
400 | Mauvaise requête — Paramètres invalides ou champs obligatoires manquants |
401 | Non autorisé — Clé API manquante ou invalide |
403 | Interdit — Permissions insuffisantes (par exemple, clé publique sur un point de terminaison privé) |
404 | Non trouvé — La ressource n'existe pas |
429 | Trop de requêtes — Limite de taux dépassée |
500 | Erreur 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;
}