Hibakezelés
A TCG Price Lookup API HTTP státuszkódjainak, hibaválasz formátumának és kezelési módszerének leírása.
Hibaválasz formátuma
Minden hiba egységes JSON formátumban kerül visszaadásra:
{
"error": {
"code": "error_code",
"message": "Ember által olvasható hibaleírás",
"details": {}
}
}
HTTP státuszkódok
| Kód | Leírás |
|---|---|
200 | Sikeres |
400 | Hibás kérés (érvénytelen paraméterek) |
401 | Hitelesítetlen (érvénytelen vagy hiányzó API-kulcs) |
403 | Tiltott (csomag hozzáférési korlát) |
404 | Nem található (kártya vagy erőforrás nem létezik) |
429 | Túl sok kérés (rate limit túllépve) |
500 | Szerverhiba |
Gyakori hibák és kezelésük
401 Unauthorized
{ "error": { "code": "unauthorized", "message": "Invalid or missing API key" } }
Megoldás: Ellenőrizd az API-kulcsot. Győződj meg róla, hogy az X-API-Key fejléc helyesen van beállítva.
429 Too Many Requests
{ "error": { "code": "rate_limit_exceeded", "message": "Daily limit reached" } }
A válasz tartalmaz egy Retry-After fejlécet, amely megadja a következő kérésig várandó másodpercek számát:
Retry-After: 3600
X-RateLimit-Limit: 200
X-RateLimit-Remaining: 0
X-RateLimit-Reset: 1704067200
Megoldás: Tartsd tiszteletben a Retry-After fejlécet. A napi limit UTC éjfélkor resetelődik. Ha több kérésre van szükséged, frissítsd a csomagodat.
403 Forbidden
{ "error": { "code": "feature_not_available", "message": "Price history requires Trader plan" } }
Megoldás: Egyes funkciók, mint az ártörténet, besorolt árak vagy kötegelt keresés, magasabb csomagot igényelnek.
Hibakezelés SDK-val
// JavaScript
try {
const card = await tcg.cards.get('pokemon-base1-4');
} catch (error) {
if (error.status === 429) {
// Rate limit: ellenőrizd az újrapróbálkozási időt
const retryAfter = error.headers['retry-after'];
console.log(`Rate limit. Próbálj újra ${retryAfter} másodperc múlva`);
} else if (error.status === 401) {
console.error('Érvénytelen API-kulcs');
}
}
# Python
from tcglookup import TCGLookup, RateLimitError, AuthError
try:
results = tcg.cards.search(name="charizard", game="pokemon")
except RateLimitError as e:
print(f"Rate limit. Próbálj újra {e.retry_after} másodperc múlva")
except AuthError:
print("Érvénytelen API-kulcs")