Errori
L'API risponde con codici di stato HTTP standard e alcuni codici specifici di Eaternity. In un batch, ogni elemento ha il proprio statuscode.
Codici di successo
| Codice | Descrizione |
|---|---|
| 200 | Request riuscita |
| 201 | Risorsa creata correttamente |
| 202 | Request accettata per l'elaborazione asincrona (Prodotti) |
| 204 | Risorsa eliminata correttamente (nessun contenuto) |
Codici di errore del client
| Codice | Descrizione |
|---|---|
| 400 | Bad request - JSON malformato o contenuto non valido |
| 401 | Nessuna autorizzazione - chiave API valida non fornita |
| 403 | Forbidden - cucina non autorizzata ai calcoli |
| 404 | Not found - la risorsa richiesta non esiste |
| 405 | Metodo non consentito |
| 413 | Payload Too Large |
Codici di errore del server
| Codice | Descrizione | Azione |
|---|---|---|
| 500 | Server Error | Ripetete la request o contattate il supporto |
Codici di errore di validazione
| Codice | Descrizione | Azione |
|---|---|---|
| 422 | Request Validation Error — la request non corrisponde allo schema previsto (ad es. un intero dove era previsto una stringa) | Correggete il formato della request |
Codici di errore di elaborazione (specifici di Eaternity)
Questi codici di stato personalizzati indicano problemi di elaborazione specifici:
| Codice | Nome | Descrizione | Azione |
|---|---|---|---|
| 601 | Manual Matching Missing | Non più restituito. Un ingrediente senza matching restituisce 602. | — |
| 602 | No Automatic Match | Almeno un nome di ingrediente non ha trovato un matching automatico nell'Eaternity Database | Riprovate una volta al giorno o provate un altro nome di ingrediente |
| 610 | Missing Required Property | Una proprietà obbligatoria della risorsa non è stata indicata nella request | Fornite il campo obbligatorio |
| 611 | Wrong Property Value | Una proprietà della risorsa non è stata fornita secondo la documentazione: formato errato o valore non valido | Correggete il valore della proprietà |
| 612 | Reference Not Found | Un ingrediente fa riferimento a una ricetta (type: recipes) o a un prodotto (type: products) che non è salvato | Createlo prima, oppure includete la sotto-ricetta nello stesso batch |
| 613 | Write To A Product Denied | Una ricetta/fornitura ha cercato di definire un ingrediente con un id che appartiene a un prodotto, oppure la scrittura di un prodotto convertirebbe un ingrediente esistente in prodotto | Fate riferimento al prodotto con type: "products" invece di definirlo. Per convertire un ingrediente di proposito, aggiungete convert-ingredient-to-product=true. |
| 670 | Recipe Has No Ingredients | È stata referenziata una sotto-ricetta con quantità positiva, ma senza ingredienti propri | Aggiungete ingredienti alla sotto-ricetta |
Codici aggiuntivi specifici dell'implementazione
I codici seguenti vengono restituiti dal motore di calcolo per errori di elaborazione specifici. Non sono documentati nella specifica canonica dell'API, ma possono comparire nella pratica.
| Codice | Nome | Descrizione | Azione |
|---|---|---|---|
| 671 | Missing LCA Inventory | Nessun inventario del ciclo di vita trovato per l'ingrediente | Contattate il supporto con i dettagli del termine |
| 672 | Missing Nutrients | Nessun dato nutrizionale trovato per l'ingrediente | Contattate il supporto con i dettagli del termine |
| 673 | Failed Amount Estimation | Impossibile stimare la quantità dell'ingrediente | Verificate il formato della dichiarazione |
| 674 | Failed Ingredient Splitter | Impossibile analizzare la dichiarazione degli ingredienti | Semplificate la dichiarazione degli ingredienti |
| 675 | Unknown Unit | Unità dell'ingrediente non riconosciuta | Usate unità standard (gram, liter) |
| 678 | CO2 Calculation Failed | Impossibile calcolare il valore di CO2 | Verificate la completezza dei dati dell'ingrediente |
| 679 | VitaScore Calculation Failed | Impossibile calcolare il VitaScore | Verificate la disponibilità dei dati nutrizionali |
| 680 | Environment Score Failed | Impossibile calcolare il punteggio ambientale | Verificate la disponibilità dei dati ambientali |
Gestione degli errori 6xx
I codici di errore 6xx sono specifici del sistema di calcolo di Eaternity:
-
602: si verifica quando un ingrediente non trova un matching nel database Eaternity. Il processo di matching viene eseguito ogni giorno, quindi riprovate dopo 24 ore o provate un nome di ingrediente più comune.
-
610/611: riguardano proprietà della request mancanti o non valide. Confrontate la request con la documentazione dell'API.
-
612: verificate che sotto-ricette e prodotti siano creati prima di farvi riferimento, oppure includete le sotto-ricette nella stessa request batch.
-
613: i prodotti sono protetti in scrittura: solo gli endpoint dei prodotti possono modificarli. Fate riferimento a un prodotto da una ricetta con
type: "products"invece di ridefinirlo con lo stesso id. -
670: assicuratevi che le sotto-ricette contengano almeno un ingrediente prima di farvi riferimento.
-
671-680: indicano problemi del motore di calcolo. Verificate che le dichiarazioni degli ingredienti siano formattate correttamente e usino unità standard.