טיפול בשגיאות
קודי סטטוס HTTP, פורמט תגובות שגיאה וכיצד לטפל בהן ב-TCG Price Lookup API.
פורמט תגובת שגיאה
כל השגיאות מחזירות פורמט JSON עקבי:
{
"error": {
"code": "error_code",
"message": "תיאור שגיאה קריא לבני אדם",
"details": {}
}
}
קודי סטטוס HTTP
| קוד | תיאור |
|---|---|
200 | הצלחה |
400 | בקשה שגויה (פרמטרים לא תקינים) |
401 | לא מאומת (מפתח API לא תקין או חסר) |
403 | אסור (הגבלת גישה בתוכנית) |
404 | לא נמצא (קלף או משאב לא קיים) |
429 | יותר מדי בקשות (חריגה ממגבלת קצב) |
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) {
// מגבלת קצב: בדוק זמן המתנה לניסיון חוזר
const retryAfter = error.headers['retry-after'];
console.log(`מגבלת קצב. נסה שוב בעוד ${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"מגבלת קצב. נסה שוב בעוד {e.retry_after} שניות")
except AuthError:
print("מפתח API לא תקין")