Errores
La API responde con códigos de estado HTTP estándar y con algunos códigos propios de Eaternity. En un lote, cada elemento tiene su propio statuscode.
Códigos de éxito
| Código | Descripción |
|---|---|
| 200 | La solicitud se ha procesado correctamente |
| 201 | Recurso creado correctamente |
| 202 | Solicitud aceptada para procesamiento asíncrono (Productos) |
| 204 | Recurso eliminado correctamente (sin contenido) |
Códigos de error del cliente
| Código | Descripción |
|---|---|
| 400 | Solicitud incorrecta: JSON mal formado o contenido no válido |
| 401 | Sin autorización: no se ha proporcionado una clave de API válida |
| 403 | Prohibido: la cocina no está autorizada para cálculos |
| 404 | No encontrado: el recurso solicitado no existe |
| 405 | Método no permitido |
| 413 | Payload demasiado grande |
Códigos de error del servidor
| Código | Descripción | Acción |
|---|---|---|
| 500 | Error del servidor | Repetid la solicitud o contactad con el soporte |
Códigos de error de validación
| Código | Descripción | Acción |
|---|---|---|
| 422 | Error de validación de la solicitud: la solicitud no se ajusta al esquema esperado (p. ej., un entero donde se esperaba un string) | Corregid el formato de la solicitud |
Códigos de error de procesamiento (propios de Eaternity)
Estos códigos de estado propios indican problemas concretos de procesamiento:
| Código | Nombre | Descripción | Acción |
|---|---|---|---|
| 601 | Manual Matching Missing | Ya no se devuelve. Un ingrediente sin matching devuelve 602. | — |
| 602 | No Automatic Match | Al menos un nombre de ingrediente no tiene matching automático en la Eaternity Database | Repetid una vez al día o probad otro nombre de ingrediente |
| 610 | Missing Required Property | La solicitud no incluye una propiedad obligatoria del recurso | Indicad el campo obligatorio |
| 611 | Wrong Property Value | Una propiedad del recurso no se ha indicado según la documentación: formato incorrecto o valor no válido | Corregid el valor de la propiedad |
| 612 | Reference Not Found | Un ingrediente referencia una receta (type: recipes) o un producto (type: products) que no está guardado | Cread primero la referencia, o incluid la subreceta en el mismo lote |
| 613 | Write To A Product Denied | Una receta o un suministro ha intentado definir un ingrediente con un id que pertenece a un producto, o la escritura de un producto convertiría un ingrediente existente en uno | Referenciad el producto con type: "products" en lugar de definirlo. Para convertir un ingrediente a propósito, añadid convert-ingredient-to-product=true. |
| 670 | Recipe Has No Ingredients | Se ha referenciado una subreceta con una cantidad positiva, pero no tiene ingredientes propios | Añadid ingredientes a la subreceta |
Códigos adicionales propios de la implementación
El motor de cálculo devuelve los siguientes códigos ante fallos concretos de procesamiento. No están documentados en la especificación canónica de la API, pero pueden aparecer en la práctica.
| Código | Nombre | Descripción | Acción |
|---|---|---|---|
| 671 | Missing LCA Inventory | No se ha encontrado un inventario de ciclo de vida para el ingrediente | Contactad con el soporte indicando el término |
| 672 | Missing Nutrients | No se han encontrado datos de nutrientes para el ingrediente | Contactad con el soporte indicando el término |
| 673 | Failed Amount Estimation | No se ha podido estimar la cantidad del ingrediente | Revisad el formato de la declaración |
| 674 | Failed Ingredient Splitter | No se ha podido analizar la declaración de ingredientes | Simplificad la declaración de ingredientes |
| 675 | Unknown Unit | No se reconoce la unidad del ingrediente | Usad unidades estándar (gram, liter) |
| 678 | CO2 Calculation Failed | No se puede calcular el valor de CO2 | Comprobad que los datos del ingrediente estén completos |
| 679 | VitaScore Calculation Failed | No se puede calcular el VitaScore | Comprobad que haya datos de nutrientes disponibles |
| 680 | Environment Score Failed | No se puede calcular la puntuación ambiental | Comprobad que haya datos ambientales disponibles |
Gestión de los errores 6xx
Los códigos de error 6xx son propios del sistema de cálculo de Eaternity:
-
602: aparece cuando un ingrediente no tiene matching en la base de datos de Eaternity. El proceso de matching se ejecuta a diario, así que repetid la solicitud pasadas 24 horas o probad un nombre de ingrediente más común.
-
610/611: se refieren a propiedades de la solicitud que faltan o no son válidas. Comprobad la solicitud con la documentación de la API.
-
612: comprobad que las subrecetas y los productos estén creados antes de referenciarlos, o incluid las subrecetas en la misma solicitud por lotes.
-
613: los productos están protegidos contra escritura; solo los endpoints de productos pueden modificarlos. Referenciad un producto desde una receta con
type: "products"en lugar de redefinirlo con el mismo id. -
670: aseguraos de que las subrecetas contengan al menos un ingrediente antes de referenciarlas.
-
671-680: indican problemas del motor de cálculo. Comprobad que las declaraciones de ingredientes tengan el formato correcto y usen unidades estándar.