Обробка помилок
HTTP-статус коди, формати відповідей з помилками та як їх обробляти в API TCG Price Lookup.
Формат відповіді з помилкою
Всі помилки повертають однаковий формат JSON:
{
"error": {
"code": "error_code",
"message": "Зрозумілий опис помилки",
"details": {}
}
}
HTTP-статус коди
| Код | Опис |
|---|---|
200 | Успішно |
400 | Поганий запит (невірні параметри) |
401 | Не авторизовано (невірний або відсутній API-ключ) |
403 | Заборонено (обмеження плану) |
404 | Не знайдено (картка або ресурс не існує) |
429 | Забагато запитів (перевищено rate limit) |
500 | Помилка сервера |
Поширені помилки та вирішення
401 Unauthorized
{ "error": { "code": "unauthorized", "message": "Invalid or missing API key" } }
Вирішення: Перевірте свій API-ключ. Переконайтесь, що заголовок X-API-Key правильно встановлено.
429 Too Many Requests
{ "error": { "code": "rate_limit_exceeded", "message": "Daily limit reached" } }
Відповідь містить заголовок Retry-After з кількістю секунд до наступного запиту:
Retry-After: 3600
X-RateLimit-Limit: 200
X-RateLimit-Remaining: 0
X-RateLimit-Reset: 1704067200
Вирішення: Дотримуйтесь заголовка Retry-After. Денні ліміти скидаються опівночі UTC. Якщо потрібно більше запитів — підвищте план.
403 Forbidden
{ "error": { "code": "feature_not_available", "message": "Price history requires Trader plan" } }
Вирішення: Такі функції як історія цін, ціни на оцінені картки та пакетний пошук потребують вищого плану.
Обробка помилок через SDK
// JavaScript
try {
const card = await tcg.cards.get('pokemon-base1-4');
} catch (error) {
if (error.status === 429) {
// Rate limit: перевірте, коли можна повторити
const retryAfter = error.headers['retry-after'];
console.log(`Rate limit. Повторіть через ${retryAfter} секунд`);
} else if (error.status === 401) {
console.error('Невірний API-ключ');
}
}
# Python
from tcglookup import TCGLookup, RateLimitError, AuthError
try:
results = tcg.cards.search(name="charizard", game="pokemon")
except RateLimitError as e:
print(f"Rate limit. Повторіть через {e.retry_after} секунд")
except AuthError:
print("Невірний API-ключ")