Spracovanie chýb
HTTP stavové kódy, formát chybových odpovedí TCG Price Lookup API a ako ich riešiť.
Formát chybovej odpovede
Všetky chyby vrátia konzistentný JSON formát:
{
"error": {
"code": "error_code",
"message": "Ľudsky čitateľný popis chyby",
"details": {}
}
}
HTTP stavové kódy
| Kód | Popis |
|---|---|
200 | Úspech |
400 | Nesprávna požiadavka (neplatné parametre) |
401 | Neautorizovaný (neplatný alebo chýbajúci API kľúč) |
403 | Zakázaný (obmedzenie prístupu plánom) |
404 | Nenájdené (karta alebo zdroj neexistuje) |
429 | Príliš veľa požiadaviek (prekročený rate limit) |
500 | Chyba servera |
Bežné chyby a ich riešenie
401 Unauthorized
{ "error": { "code": "unauthorized", "message": "Invalid or missing API key" } }
Riešenie: Overte váš API kľúč. Skontrolujte, či je hlavička X-API-Key správne nastavená.
429 Too Many Requests
{ "error": { "code": "rate_limit_exceeded", "message": "Daily limit reached" } }
Odpoveď obsahuje hlavičku Retry-After udávajúcu počet sekúnd do ďalšej požiadavky:
Retry-After: 3600
X-RateLimit-Limit: 200
X-RateLimit-Remaining: 0
X-RateLimit-Reset: 1704067200
Riešenie: Rešpektujte hlavičku Retry-After. Denné limity sa resetujú o polnoci UTC. Ak potrebujete viac požiadaviek, upgradujte plán.
403 Forbidden
{ "error": { "code": "feature_not_available", "message": "Price history requires Trader plan" } }
Riešenie: Funkcie ako história cien, ohodnotené ceny a hromadné vyhľadávanie vyžadujú vyšší plán.
Spracovanie chýb v SDK
// JavaScript
try {
const card = await tcg.cards.get('pokemon-base1-4');
} catch (error) {
if (error.status === 429) {
// Rate limit: skontrolujte čas do retry
const retryAfter = error.headers['retry-after'];
console.log(`Rate limit. Skúste znova za ${retryAfter} sekúnd`);
} else if (error.status === 401) {
console.error('Neplatný API kľúč');
}
}
# Python
from tcglookup import TCGLookup, RateLimitError, AuthError
try:
results = tcg.cards.search(name="charizard", game="pokemon")
except RateLimitError as e:
print(f"Rate limit. Skúste znova za {e.retry_after} sekúnd")
except AuthError:
print("Neplatný API kľúč")