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

CodeMô tả
200Thành công
400Yêu cầu không hợp lệ (tham số không đúng)
401Chưa xác thực (API key không hợp lệ hoặc thiếu)
403Bị cấm (giới hạn truy cập theo gói)
404Không tìm thấy (thẻ hoặc tài nguyên không tồn tại)
429Quá nhiều yêu cầu (vượt quá giới hạn tốc độ)
500Lỗ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ệ")