Pour garantir la stabilité de l'API, des rate limits s'appliquent à certains endpoints.
| Status | Description |
|---|---|
| 400 | Corps de requête invalide ou champs obligatoires manquants |
| 401 | Clé API absente ou invalide |
| 404 | Commande introuvable |
| 429 | Rate limit dépassé |
| 500 | Erreur interne du serveur |
Toutes les erreurs suivent un format JSON uniforme.
// 429 Rate Limit
{ "error": "Rate limited" }
// 400 Validation Error
{
"error": "Validation failed",
"details": {
"customerName": { "_errors": ["Required"] },
"type": { "_errors": ["Invalid enum value"] }
}
}
// 404 Not Found
{ "error": "Order not found" }En cas d'erreur de rate limit (429), nous recommandons un backoff exponentiel :
async function fetchWithRetry(url, options, maxRetries = 3) {
for (let attempt = 0; attempt < maxRetries; attempt++) {
const res = await fetch(url, options);
if (res.status === 429 || res.status >= 500) {
const delay = Math.pow(2, attempt) * 1000; // 1s, 2s, 4s
await new Promise((r) => setTimeout(r, delay));
continue;
}
return res;
}
throw new Error("Max retries exceeded");
}