Διαχείριση Σφαλμάτων
Κωδικοί HTTP status, μορφές αποκρίσεων σφαλμάτων και τρόποι αντιμετώπισής τους στο TCG Price Lookup API.
Μορφή αποκρίσεων σφαλμάτων
Όλα τα σφάλματα επιστρέφουν συνεπή μορφή JSON:
{
"error": {
"code": "error_code",
"message": "Περιγραφή σφάλματος αναγνώσιμη από ανθρώπους",
"details": {}
}
}
Κωδικοί HTTP status
| Κωδικός | Περιγραφή |
|---|---|
200 | Επιτυχία |
400 | Κακό αίτημα (μη έγκυρες παράμετροι) |
401 | Χωρίς εξουσιοδότηση (μη έγκυρο ή ελλιπές API key) |
403 | Απαγορευμένο (περιορισμοί πρόσβασης πλάνου) |
404 | Δεν βρέθηκε (η κάρτα ή ο πόρος δεν υπάρχει) |
429 | Πολλά αιτήματα (υπέρβαση rate limit) |
500 | Σφάλμα εξυπηρετητή |
Συνηθισμένα σφάλματα και αντιμετώπισή τους
401 Unauthorized
{ "error": { "code": "unauthorized", "message": "Invalid or missing API key" } }
Αντιμετώπιση: Επαληθεύστε το API key σας. Βεβαιωθείτε ότι η κεφαλίδα 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 key');
}
}
# 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 key")