Loading...
Loading...
Το API χρησιμοποιεί συμβατικούς κωδικούς απόκρισης HTTP για να υποδείξει την επιτυχία ή την αποτυχία αιτημάτων. Αυτή η σελίδα τεκμηριώνει τις μορφές σφαλμάτων και τις στρατηγικές χειρισμού.
| Code | Description |
|---|---|
| 200 | Το αίτημα πέτυχε. Το σώμα της απόκρισης περιέχει τα ζητούμενα δεδομένα. |
| 201 | Η δημιουργία του πόρου ολοκληρώθηκε με επιτυχία. |
| Code | Description |
|---|---|
| 400 | Κακό αίτημα - Μη έγκυρες παράμετροι ή ακατάλληλο σώμα αιτήματος |
| 401 | Μη εξουσιοδοτημένο - Λείπει ή μη έγκυρο κλειδί API |
| 403 | Απαγορευμένο - Το κλειδί API δεν διαθέτει τις απαιτούμενες άδειες |
| 404 | Δεν Βρέθηκε - Ο αιτούμενος πόρος δεν υπάρχει |
| 429 | Πολλά Αιτήματα - Υπέρβαση ορίου ρυθμού |
| 500 | Εσωτερικό Σφάλμα Διακομιστή - Παρακαλώ επικοινωνήστε με την υποστήριξη εάν αυτό επιμένει |
Όλες οι αποκρίσεις σφάλματος ακολουθούν μια συνεπή δομή JSON με ένα αντικείμενο σφάλματος που περιέχει πεδία κωδικού, μηνύματος και λεπτομερειών.
{
"error": {
"code": "UNAUTHORIZED",
"message": "Invalid or missing API key",
"details": "The X-API-Key header is required for authentication"
}
}Αυτό το σφάλμα εμφανίζεται όταν το κλειδί API λείπει, είναι μη έγκυρο ή έχει ανακληθεί. Ελέγξτε ότι συμπεριλαμβάνετε την κεφαλίδα X-API-Key με ένα έγκυρο κλειδί.
{
"error": {
"code": "UNAUTHORIZED",
"message": "Invalid or missing API key",
"details": "The provided API key is invalid or has been revoked"
}
}Αυτό το σφάλμα προκύπτει όταν το κλειδί API σας δεν έχει τις απαιτούμενες άδειες για το ζητούμενο τελικό σημείο. Επικοινωνήστε με τον διαχειριστή σας για να ενημερώσετε τις άδειες του κλειδιού.
{
"error": {
"code": "FORBIDDEN",
"message": "Insufficient permissions",
"details": "This API key does not have the DEVICES_READ permission"
}
}Αυτό το σφάλμα προκύπτει όταν έχετε υπερβεί τον περιορισμό ρυθμού. Η απάντηση περιλαμβάνει πληροφορίες για το πότε μπορείτε να δοκιμάσετε ξανά.
{
"error": {
"code": "RATE_LIMITED",
"message": "Too many requests",
"details": "Rate limit exceeded. Try again in 45 seconds"
}
}Υλοποιήστε στιβαρό χειρισμό σφαλμάτων στην ενσωμάτωσή σας για να χειριστείτε με χάρη τις αποτυχίες και να επαναδοκιμάσετε αυτόματα προσωρινά σφάλματα.
import requests
import time
API_KEY = "nm_acme_abc123..."
BASE_URL = "https://api.nomid.tech/emm/api/v1"
def make_request(endpoint, max_retries=3):
for attempt in range(max_retries):
response = requests.get(
f"{BASE_URL}{endpoint}",
headers={"X-API-Key": API_KEY}
)
if response.status_code == 200:
return response.json()
if response.status_code == 401:
raise Exception("Invalid API key")
if response.status_code == 403:
raise Exception("Insufficient permissions")
if response.status_code == 429:
# Get retry time from header or use default
retry_after = int(response.headers.get("X-RateLimit-Reset", 60))
wait_time = min(retry_after, 60)
print(f"Rate limited. Waiting {wait_time}s...")
time.sleep(wait_time)
continue
if response.status_code >= 500:
# Exponential backoff for server errors
wait_time = (2 ** attempt) * 1
print(f"Server error. Retrying in {wait_time}s...")
time.sleep(wait_time)
continue
# Unknown error
response.raise_for_status()
raise Exception(f"Failed after {max_retries} retries")Για προσωρινά σφάλματα, υλοποιήστε μια στρατηγική επαναδοκιμής με εκθετική καθυστέρηση: