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

KoodiKuvaus
200Onnistui
400Virheellinen pyyntö (virheelliset parametrit)
401Todennus epäonnistui (virheellinen tai puuttuva API-avain)
403Kielletty (tason käyttörajoitus)
404Ei löydy (korttia tai resurssia ei ole)
429Liian monta pyyntöä (nopeusraja ylitetty)
500Palvelinvirhe

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