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ódLeírás
200Sikeres
400Hibás kérés (érvénytelen paraméterek)
401Hitelesítetlen (érvénytelen vagy hiányzó API-kulcs)
403Tiltott (csomag hozzáférési korlát)
404Nem található (kártya vagy erőforrás nem létezik)
429Túl sok kérés (rate limit túllépve)
500Szerverhiba

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")