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ódPopis
200Úspech
400Nesprávna požiadavka (neplatné parametre)
401Neautorizovaný (neplatný alebo chýbajúci API kľúč)
403Zakázaný (obmedzenie prístupu plánom)
404Nenájdené (karta alebo zdroj neexistuje)
429Príliš veľa požiadaviek (prekročený rate limit)
500Chyba 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ľúč")