Obsługa błędów
Kody HTTP, format odpowiedzi błędu i jak je obsługiwać w TCG Price Lookup API.
Format odpowiedzi błędu
Wszystkie błędy zwracają spójny format JSON:
{
"error": {
"code": "error_code",
"message": "Czytelny dla człowieka opis błędu",
"details": {}
}
}
Kody HTTP
| Kod | Opis |
|---|---|
200 | Sukces |
400 | Złe zapytanie (nieprawidłowe parametry) |
401 | Nieautoryzowany (nieprawidłowy lub brakujący klucz API) |
403 | Zabroniony (ograniczenia planu) |
404 | Nie znaleziono (karta lub zasób nie istnieje) |
429 | Zbyt wiele zapytań (przekroczono limit) |
500 | Błąd serwera |
Typowe błędy i jak je naprawić
401 Unauthorized
{ "error": { "code": "unauthorized", "message": "Invalid or missing API key" } }
Rozwiązanie: Sprawdź swój klucz API. Upewnij się, że nagłówek X-API-Key jest poprawnie ustawiony.
429 Too Many Requests
{ "error": { "code": "rate_limit_exceeded", "message": "Daily limit reached" } }
Odpowiedź zawiera nagłówek Retry-After z liczbą sekund do następnego zapytania:
Retry-After: 3600
X-RateLimit-Limit: 200
X-RateLimit-Remaining: 0
X-RateLimit-Reset: 1704067200
Rozwiązanie: Przestrzegaj nagłówka Retry-After. Dzienne limity resetują się o północy UTC. Jeśli potrzebujesz więcej zapytań, ulepsz plan.
403 Forbidden
{ "error": { "code": "feature_not_available", "message": "Price history requires Trader plan" } }
Rozwiązanie: Niektóre funkcje, takie jak historia cen, ceny gradowanych kart czy batch, wymagają wyższego planu.
Obsługa błędów przez SDK
// JavaScript
try {
const card = await tcg.cards.get('pokemon-base1-4');
} catch (error) {
if (error.status === 429) {
// Limit zapytań: sprawdź czas oczekiwania
const retryAfter = error.headers['retry-after'];
console.log(`Limit zapytań. Spróbuj ponownie za ${retryAfter} sekund`);
} else if (error.status === 401) {
console.error('Nieprawidłowy klucz API');
}
}
# Python
from tcglookup import TCGLookup, RateLimitError, AuthError
try:
results = tcg.cards.search(name="charizard", game="pokemon")
except RateLimitError as e:
print(f"Limit zapytań. Spróbuj ponownie za {e.retry_after} sekund")
except AuthError:
print("Nieprawidłowy klucz API")