Hata Yönetimi

TCG Price Lookup API HTTP durum kodları, hata yanıt biçimi ve bunlarla başa çıkma yöntemleri.


Hata Yanıt Biçimi

Tüm hatalar tutarlı bir JSON biçimi döndürür:

{
  "error": {
    "code": "error_code",
    "message": "İnsan tarafından okunabilir hata açıklaması",
    "details": {}
  }
}

HTTP Durum Kodları

KodAçıklama
200Başarılı
400Hatalı İstek (geçersiz parametre)
401Yetkisiz (geçersiz veya eksik API anahtarı)
403Yasak (plan erişim kısıtlaması)
404Bulunamadı (kart veya kaynak mevcut değil)
429Çok Fazla İstek (hız limiti aşıldı)
500Sunucu Hatası

Yaygın Hatalar ve Çözümler

401 Yetkisiz

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

Çözüm: API anahtarınızı kontrol edin. X-API-Key başlığının doğru ayarlandığından emin olun.

429 Çok Fazla İstek

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

Yanıt, bir sonraki isteğe kadar beklenecek saniye sayısını gösteren Retry-After başlığı içerir:

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

Çözüm: Retry-After başlığına uyun. Günlük limitler UTC gece yarısında sıfırlanır. Daha fazla isteğe ihtiyacınız varsa planınızı yükseltin.

403 Yasak

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

Çözüm: Fiyat geçmişi, derecelendirilmiş fiyatlar ve toplu arama gibi özellikler üst plan gerektirir.

SDK ile Hata Yönetimi

// JavaScript
try {
  const card = await tcg.cards.get('pokemon-base1-4');
} catch (error) {
  if (error.status === 429) {
    // Hız limiti: yeniden deneme süresini kontrol et
    const retryAfter = error.headers['retry-after'];
    console.log(`Hız limiti aşıldı. ${retryAfter} saniye sonra tekrar deneyin`);
  } else if (error.status === 401) {
    console.error('API anahtarı geçersiz');
  }
}
# Python
from tcglookup import TCGLookup, RateLimitError, AuthError

try:
    results = tcg.cards.search(name="charizard", game="pokemon")
except RateLimitError as e:
    print(f"Hız limiti aşıldı. {e.retry_after} saniye sonra tekrar deneyin")
except AuthError:
    print("API anahtarı geçersiz")