Aby zapewnić stabilność API, obowiązują limity żądań dla określonych endpointów.
| Status | Description |
|---|---|
| 400 | Nieprawidłowa treść żądania lub brakujące wymagane pola |
| 401 | Brak klucza API lub nieprawidłowy klucz |
| 404 | Zlecenie nie zostało znalezione |
| 429 | Przekroczono limit żądań |
| 500 | Wewnętrzny błąd serwera |
Wszystkie błędy mają ujednolicony format JSON.
// 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" }W przypadku błędów przekroczenia limitu (429) zalecamy wykładniczy backoff:
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");
}