Felhantering
HTTP-statuskoder, felsvarsformat och hur du hanterar fel från TCG Price Lookup API.
Felsvarsformat
Alla fel returnerar ett konsekvent JSON-format:
{
"error": {
"code": "error_code",
"message": "Mänskligt läsbar felbeskrivning",
"details": {}
}
}
HTTP-statuskoder
| Kod | Beskrivning |
|---|---|
200 | Lyckat |
400 | Felaktig förfrågan (ogiltiga parametrar) |
401 | Obehörig (ogiltig eller saknad API-nyckel) |
403 | Förbjuden (planbegränsning) |
404 | Hittades inte (kort eller resurs finns inte) |
429 | För många förfrågningar (hastighetsgräns överskrides) |
500 | Serverfel |
Vanliga fel och åtgärder
401 Unauthorized
{ "error": { "code": "unauthorized", "message": "Invalid or missing API key" } }
Åtgärd: Kontrollera din API-nyckel. Verifiera att X-API-Key-headern är korrekt angiven.
429 Too Many Requests
{ "error": { "code": "rate_limit_exceeded", "message": "Daily limit reached" } }
Svaret inkluderar en Retry-After-header som anger sekunder tills nästa förfrågan:
Retry-After: 3600
X-RateLimit-Limit: 200
X-RateLimit-Remaining: 0
X-RateLimit-Reset: 1704067200
Åtgärd: Respektera Retry-After-headern. Dagliga gränser återställs vid midnatt UTC. Uppgradera din plan om du behöver fler förfrågningar.
403 Forbidden
{ "error": { "code": "feature_not_available", "message": "Price history requires Trader plan" } }
Åtgärd: Funktioner som prishistorik, graderade priser och batch-sökning kräver en högre plan.
Felhantering med SDK:er
// JavaScript
try {
const card = await tcg.cards.get('pokemon-base1-4');
} catch (error) {
if (error.status === 429) {
// Hastighetsgräns: kontrollera tid till återställning
const retryAfter = error.headers['retry-after'];
console.log(`Hastighetsgräns nådd. Försök igen om ${retryAfter} sekunder`);
} else if (error.status === 401) {
console.error('Ogiltig API-nyckel');
}
}
# Python
from tcglookup import TCGLookup, RateLimitError, AuthError
try:
results = tcg.cards.search(name="charizard", game="pokemon")
except RateLimitError as e:
print(f"Hastighetsgräns nådd. Försök igen om {e.retry_after} sekunder")
except AuthError:
print("Ogiltig API-nyckel")