Xử lý lỗi
HTTP status code, định dạng response lỗi và cách xử lý chúng trong TCG Price Lookup API.
Định dạng response lỗi
Tất cả lỗi trả về định dạng JSON nhất quán:
{
"error": {
"code": "error_code",
"message": "Mô tả lỗi dễ đọc",
"details": {}
}
}
HTTP Status Code
| Code | Mô tả |
|---|---|
200 | Thành công |
400 | Yêu cầu không hợp lệ (tham số không đúng) |
401 | Chưa xác thực (API key không hợp lệ hoặc thiếu) |
403 | Bị cấm (giới hạn truy cập theo gói) |
404 | Không tìm thấy (thẻ hoặc tài nguyên không tồn tại) |
429 | Quá nhiều yêu cầu (vượt quá giới hạn tốc độ) |
500 | Lỗi máy chủ |
Lỗi phổ biến và cách xử lý
401 Unauthorized
{ "error": { "code": "unauthorized", "message": "Invalid or missing API key" } }
Cách xử lý: Kiểm tra API key của bạn. Đảm bảo header X-API-Key được đặt đúng.
429 Too Many Requests
{ "error": { "code": "rate_limit_exceeded", "message": "Daily limit reached" } }
Response bao gồm header Retry-After cho biết số giây cần đợi trước khi thử lại:
Retry-After: 3600
X-RateLimit-Limit: 200
X-RateLimit-Remaining: 0
X-RateLimit-Reset: 1704067200
Cách xử lý: Tôn trọng header Retry-After. Giới hạn ngày đặt lại vào lúc nửa đêm UTC. Nâng cấp gói nếu cần nhiều yêu cầu hơn.
403 Forbidden
{ "error": { "code": "feature_not_available", "message": "Price history requires Trader plan" } }
Cách xử lý: Các tính năng như lịch sử giá, giá đã chấm điểm và tìm kiếm hàng loạt yêu cầu gói cao hơn.
Xử lý lỗi bằng SDK
// JavaScript
try {
const card = await tcg.cards.get('pokemon-base1-4');
} catch (error) {
if (error.status === 429) {
// Giới hạn tốc độ: kiểm tra thời gian cần đợi
const retryAfter = error.headers['retry-after'];
console.log(`Giới hạn tốc độ. Thử lại sau ${retryAfter} giây`);
} else if (error.status === 401) {
console.error('API key không hợp lệ');
}
}
# Python
from tcglookup import TCGLookup, RateLimitError, AuthError
try:
results = tcg.cards.search(name="charizard", game="pokemon")
except RateLimitError as e:
print(f"Giới hạn tốc độ. Thử lại sau {e.retry_after} giây")
except AuthError:
print("API key không hợp lệ")