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ı
| Kod | Açıklama |
|---|---|
200 | Başarılı |
400 | Hatalı İstek (geçersiz parametre) |
401 | Yetkisiz (geçersiz veya eksik API anahtarı) |
403 | Yasak (plan erişim kısıtlaması) |
404 | Bulunamadı (kart veya kaynak mevcut değil) |
429 | Çok Fazla İstek (hız limiti aşıldı) |
500 | Sunucu 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")