Fehler
Die API antwortet mit Standard-HTTP-Statuscodes und einigen Eaternity-spezifischen Codes. In einem Batch hat jeder Eintrag seinen eigenen statuscode.
Erfolgscodes
| Code | Beschreibung |
|---|---|
| 200 | Request erfolgreich |
| 201 | Ressource erfolgreich erstellt |
| 202 | Request zur asynchronen Verarbeitung angenommen (Products) |
| 204 | Ressource erfolgreich gelöscht (kein Inhalt) |
Client-Fehlercodes
| Code | Beschreibung |
|---|---|
| 400 | Bad Request: fehlerhaftes JSON oder ungültiger Inhalt |
| 401 | Keine Autorisierung: kein gültiger API-Schlüssel angegeben |
| 403 | Forbidden: Küche ist für Berechnungen nicht autorisiert |
| 404 | Not Found: angeforderte Ressource existiert nicht |
| 405 | Methode nicht erlaubt |
| 413 | Payload Too Large |
Server-Fehlercodes
| Code | Beschreibung | Vorgehen |
|---|---|---|
| 500 | Serverfehler | Request wiederholen oder Support kontaktieren |
Validierungs-Fehlercodes
| Code | Beschreibung | Vorgehen |
|---|---|---|
| 422 | Request Validation Error: Der Request entspricht nicht dem erwarteten Schema (z. B. Integer statt String) | Format des Requests korrigieren |
Verarbeitungs-Fehlercodes (Eaternity-spezifisch)
Diese eigenen Statuscodes zeigen bestimmte Probleme bei der Verarbeitung an:
| Code | Name | Beschreibung | Vorgehen |
|---|---|---|---|
| 601 | Manual Matching Missing | Wird nicht mehr zurückgegeben. Eine nicht zugeordnete Zutat gibt 602 zurück. | — |
| 602 | No Automatic Match | Mindestens ein Zutatenname konnte in der Eaternity Database nicht automatisch zugeordnet werden | Einmal täglich wiederholen oder einen anderen Zutatennamen versuchen |
| 610 | Missing Required Property | Eine erforderliche Eigenschaft der Ressource fehlt im Request | Das erforderliche Feld angeben |
| 611 | Wrong Property Value | Eine Eigenschaft der Ressource entspricht nicht der Dokumentation: falsches Format oder ungültiger Wert | Wert der Eigenschaft korrigieren |
| 612 | Reference Not Found | Eine Zutat verweist auf ein Rezept (type: recipes) oder ein Produkt (type: products), das nicht gespeichert ist | Zuerst erstellen oder das Unterrezept im selben Batch mitschicken |
| 613 | Write To A Product Denied | Entweder versuchte ein Rezept oder Einkauf, eine Zutat unter einer ID zu definieren, die zu einem Produkt gehört, oder ein Schreibvorgang auf ein Produkt würde eine bestehende Zutat in ein Produkt umwandeln | Das Produkt mit type: "products" referenzieren, statt es zu definieren. Um eine Zutat absichtlich umzuwandeln, convert-ingredient-to-product=true angeben. |
| 670 | Recipe Has No Ingredients | Ein Unterrezept wurde mit positiver Menge referenziert, hat aber selbst keine Zutaten | Dem Unterrezept Zutaten hinzufügen |
Weitere implementierungsspezifische Codes
Die folgenden Codes gibt die Berechnungs-Engine bei bestimmten Verarbeitungsfehlern zurück. Sie sind nicht in der massgebenden API-Spezifikation dokumentiert, können in der Praxis aber vorkommen.
| Code | Name | Beschreibung | Vorgehen |
|---|---|---|---|
| 671 | Missing LCA Inventory | Kein Sachbilanz-Inventar für die Zutat gefunden | Support mit Angaben zum Begriff kontaktieren |
| 672 | Missing Nutrients | Keine Nährwertdaten für die Zutat gefunden | Support mit Angaben zum Begriff kontaktieren |
| 673 | Failed Amount Estimation | Menge der Zutat konnte nicht geschätzt werden | Format der Deklaration prüfen |
| 674 | Failed Ingredient Splitter | Zutatendeklaration konnte nicht geparst werden | Zutatendeklaration vereinfachen |
| 675 | Unknown Unit | Einheit der Zutat nicht erkannt | Standardeinheiten verwenden (gram, liter) |
| 678 | CO2 Calculation Failed | CO2-Wert kann nicht berechnet werden | Vollständigkeit der Zutatendaten prüfen |
| 679 | VitaScore Calculation Failed | VitaScore kann nicht berechnet werden | Verfügbarkeit der Nährwertdaten prüfen |
| 680 | Environment Score Failed | Umweltbewertung kann nicht berechnet werden | Verfügbarkeit der Umweltdaten prüfen |
Umgang mit 6xx-Fehlern
Die 6xx-Fehlercodes sind spezifisch für das Berechnungssystem von Eaternity:
-
602: Tritt auf, wenn eine Zutat keinem Eintrag der Eaternity Database zugeordnet werden kann. Die Zuordnung läuft täglich; wiederholen Sie den Request nach 24 Stunden oder versuchen Sie einen gängigeren Zutatennamen.
-
610/611: Diese betreffen fehlende oder ungültige Eigenschaften im Request. Prüfen Sie den Request anhand der API-Dokumentation.
-
612: Stellen Sie sicher, dass Unterrezepte und Produkte erstellt sind, bevor Sie darauf verweisen, oder schicken Sie Unterrezepte im selben Batch-Request mit.
-
613: Produkte sind schreibgeschützt; nur die Produkt-Endpoints dürfen sie ändern. Referenzieren Sie ein Produkt aus einem Rezept mit
type: "products", statt es unter derselben ID neu zu definieren. -
670: Stellen Sie sicher, dass Unterrezepte mindestens eine Zutat enthalten, bevor Sie darauf verweisen.
-
671-680: Diese weisen auf Probleme der Berechnungs-Engine hin. Prüfen Sie, ob Zutatendeklarationen korrekt formatiert sind und Standardeinheiten verwenden.