Ošetření chyb

HTTP stavové kódy, formát chybových odpovědí TCG Price Lookup API a jak je zpracovat.


Formát chybové odpovědi

Všechny chyby vrátí konzistentní JSON formát:

{
  "error": {
    "code": "error_code",
    "message": "Lidsky čitelný popis chyby",
    "details": {}
  }
}

HTTP stavové kódy

KódPopis
200Úspěch
400Špatný požadavek (neplatné parametry)
401Neautorizováno (neplatný nebo chybějící API klíč)
403Zakázáno (omezení přístupu plánu)
404Nenalezeno (karta nebo zdroj neexistuje)
429Příliš mnoho požadavků (překročen rate limit)
500Chyba serveru

Časté chyby a jejich řešení

401 Unauthorized

{ "error": { "code": "unauthorized", "message": "Invalid or missing API key" } }

Řešení: Zkontrolujte API klíč. Ujistěte se, že hlavička X-API-Key je správně nastavena.

429 Too Many Requests

{ "error": { "code": "rate_limit_exceeded", "message": "Daily limit reached" } }

Odpověď obsahuje hlavičku Retry-After udávající počet sekund do dalšího požadavku:

Retry-After: 3600
X-RateLimit-Limit: 200
X-RateLimit-Remaining: 0
X-RateLimit-Reset: 1704067200

Řešení: Respektujte hlavičku Retry-After. Denní limity se resetují o půlnoci UTC. Pokud potřebujete více požadavků, upgradujte plán.

403 Forbidden

{ "error": { "code": "feature_not_available", "message": "Price history requires Trader plan" } }

Řešení: Funkce jako historie cen, graded ceny a hromadné vyhledávání vyžadují vyšší plán.

Ošetření chyb přes SDK

// JavaScript
try {
  const card = await tcg.cards.get('pokemon-base1-4');
} catch (error) {
  if (error.status === 429) {
    // Rate limit: zjistěte čas do dalšího pokusu
    const retryAfter = error.headers['retry-after'];
    console.log(`Rate limit. Zkuste to znovu za ${retryAfter} sekund`);
  } else if (error.status === 401) {
    console.error('Neplatný API klíč');
  }
}
# Python
from tcglookup import TCGLookup, RateLimitError, AuthError

try:
    results = tcg.cards.search(name="charizard", game="pokemon")
except RateLimitError as e:
    print(f"Rate limit. Zkuste to znovu za {e.retry_after} sekund")
except AuthError:
    print("Neplatný API klíč")