Virheenkäsittely
TCG Price Lookup API:n HTTP-statuskoodit, virhevastausten muoto ja niiden käsittely.
Virhevastauksen muoto
Kaikki virheet palauttavat johdonmukaisen JSON-muodon:
{
"error": {
"code": "error_code",
"message": "Ihmisluettava virhekuvaus",
"details": {}
}
}
HTTP-statuskoodit
| Koodi | Kuvaus |
|---|---|
200 | Onnistui |
400 | Virheellinen pyyntö (virheelliset parametrit) |
401 | Todennus epäonnistui (virheellinen tai puuttuva API-avain) |
403 | Kielletty (tason käyttörajoitus) |
404 | Ei löydy (korttia tai resurssia ei ole) |
429 | Liian monta pyyntöä (nopeusraja ylitetty) |
500 | Palvelinvirhe |
Yleisimmät virheet ja niiden käsittely
401 Unauthorized
{ "error": { "code": "unauthorized", "message": "Invalid or missing API key" } }
Korjaus: Tarkista API-avain. Varmista, että X-API-Key-otsake on asetettu oikein.
429 Too Many Requests
{ "error": { "code": "rate_limit_exceeded", "message": "Daily limit reached" } }
Vastauksessa on Retry-After-otsake, joka ilmoittaa sekuntimäärän seuraavaan pyyntöön:
Retry-After: 3600
X-RateLimit-Limit: 200
X-RateLimit-Remaining: 0
X-RateLimit-Reset: 1704067200
Korjaus: Kunnioita Retry-After-otsakkeen arvoa. Päivittäinen raja nollautuu UTC:n keskiyöllä. Päivitä taso, jos tarvitset enemmän pyyntöjä.
403 Forbidden
{ "error": { "code": "feature_not_available", "message": "Price history requires Trader plan" } }
Korjaus: Hintahistoria, luokiteltujen hinnat ja erähaku vaativat korkeamman tason.
Virheenkäsittely SDK:lla
// JavaScript
try {
const card = await tcg.cards.get('pokemon-base1-4');
} catch (error) {
if (error.status === 429) {
// Nopeusraja: tarkista uudelleenyritysaika
const retryAfter = error.headers['retry-after'];
console.log(`Nopeusraja. Yritä uudelleen ${retryAfter} sekunnin kuluttua`);
} else if (error.status === 401) {
console.error('Virheellinen API-avain');
}
}
# Python
from tcglookup import TCGLookup, RateLimitError, AuthError
try:
results = tcg.cards.search(name="charizard", game="pokemon")
except RateLimitError as e:
print(f"Nopeusraja. Yritä uudelleen {e.retry_after} sekunnin kuluttua")
except AuthError:
print("Virheellinen API-avain")