Loading...
Loading...
Die API verwendet konventionelle HTTP-Antwortcodes, um den Erfolg oder Misserfolg von Anfragen anzuzeigen. Diese Seite dokumentiert Fehlerformate und Behandlungsstrategien.
| Code | Description |
|---|---|
| 200 | Anfrage erfolgreich. Der Antwortkörper enthält die angeforderten Daten. |
| 201 | Ressource erfolgreich erstellt. |
| Code | Description |
|---|---|
| 400 | Fehlerhafte Anfrage - Ungültige Parameter oder fehlerhafter Anfragekörper |
| 401 | Nicht autorisiert - Fehlender oder ungültiger API-Schlüssel |
| 403 | Verboten - API-Schlüssel fehlen erforderliche Berechtigungen |
| 404 | Nicht gefunden - Die angeforderte Ressource existiert nicht |
| 429 | Zu viele Anfragen - Ratenbegrenzung überschritten |
| 500 | Interner Serverfehler - Bitte kontaktieren Sie den Support, falls das Problem weiterhin besteht |
Alle Fehlerantworten folgen einer konsistenten JSON-Struktur mit einem Fehlerobjekt, das die Felder Code, Nachricht und Details enthält.
{
"error": {
"code": "UNAUTHORIZED",
"message": "Invalid or missing API key",
"details": "The X-API-Key header is required for authentication"
}
}Dieser Fehler tritt auf, wenn der API-Schlüssel fehlt, ungültig oder widerrufen wurde. Stellen Sie sicher, dass Sie den X-API-Key-Header mit einem gültigen Schlüssel einfügen.
{
"error": {
"code": "UNAUTHORIZED",
"message": "Invalid or missing API key",
"details": "The provided API key is invalid or has been revoked"
}
}Dieser Fehler tritt auf, wenn Ihr API-Schlüssel nicht über die erforderlichen Berechtigungen für den angeforderten Endpunkt verfügt. Wenden Sie sich an Ihren Administrator, um die Berechtigungen des Schlüssels zu aktualisieren.
{
"error": {
"code": "FORBIDDEN",
"message": "Insufficient permissions",
"details": "This API key does not have the DEVICES_READ permission"
}
}Dieser Fehler tritt auf, wenn Sie das Ratenlimit überschritten haben. Die Antwort enthält Informationen darüber, wann Sie es erneut versuchen können.
{
"error": {
"code": "RATE_LIMITED",
"message": "Too many requests",
"details": "Rate limit exceeded. Try again in 45 seconds"
}
}Implementieren Sie eine robuste Fehlerbehandlung in Ihrer Integration, um Fehler ordnungsgemäß zu behandeln und vorübergehende Fehler automatisch erneut zu versuchen.
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")Implementieren Sie für vorübergehende Fehler eine Wiederholungsstrategie mit exponentieller Rückfallverzögerung (Exponential Backoff):