Los dos tipos de consultas usan dos distintos URL de acceso estan descritos en esta documentacion. Aun más importante es tener en cuenta que cada de los consultas utiliza un formato distinto (POST vs. GET) y que las consultas estan destinadas a distintos URL’s parte de éste API.
Todas las consultas se realizan mediante POST. Es una consulta diseñada para que se utilice para recetas enteras, en inglés o español- título de la receta, lista de ingredientes e instrucciones incluido. Esta consulta le ahorra tiempo y esfuerzo para analizar las recetas y los ingredientes línea por línea.
También el resultado incluye todas las etiquetas de nutrición en un nivel de comida, así que se puede facilmente qué tipo de dieta es aplicable para la receta.
Finalmente se ajusta la cantidad de determinados ingredientes para tener en cuenta las técnicas de cocinar. Por ejemplo, se calcula la absorción de aceite para las recetas fritas, se excluyen los sólidos en recetas de caldo, se calcula la absorción de marinata y mucho más.
Todas las solicitudes de aquí se realizan utilizando GET. Esta es la API de base de datos de alimentos clásica del que está usted acostumbrado con unos importantes innovaciones de Edamam.
Puede enviar un ingrediente entero con la cantidad incluida y Edamam devlovera las etiquetas de nutrición y de la dieta para dicho ingrediente. Debe presentar juntos la cantidad y el ingrediente para obtener los datos correctos. ‘1 patata grande’ vs ‘una patata’
De esta manera puede ahorar tiempo y esfuerzo.
Para análisis de ingredientes y recetas en ingles
Path: https://api.edamam.com/api/nutrition-details
Para la beta de análisis de recetas in ingredientes en español
Path: https://test-es.edamam.com/api/nutrition-data
Devuelve la información nutricional en base a una consulta POST
con el contenido de la receta
Los siguentes parámetros son parte del URL de la consulta POST
:
Parámetro | Requerido | Typo | Descripción |
---|---|---|---|
app_id |
yes | string | Identificador de aplicación 3scale |
app_key |
yes | string | Llave de aplicación 3scale |
force |
No | Requiere que la receta esta re-evaluada |
POST
La consulta POST está destinada para que se analice el contenido de la receta – titulo y la lista de ingredientes.
La respuesta del API va a contener los valores nutricionales y la receta en un formato normalizado.
El contenido de la consulta JSON es un objeto con el siguente formato:
Nombre | Requerido | Descripción |
---|---|---|
title |
si | el nombre de la receta |
ingr |
si | los ingredientes de la receta |
summary |
no | descripción corta de la receta |
yield |
no | número de porciones |
ttime |
no | tiempo total para la receta |
prep |
no | instrucciones de preparación |
cuisine |
no | tipo de cocina |
La consulta tiene que contener el header
Content-Type: application/json
Una vez que presente una receta a través de la API Edamam, empieza a llevar una cuenta mensual para las licencias para cada nueva receta analizada. A veces sin embargo, es posible que necesite actualizar los datos de nutrición para una receta ya presentada, en caso de que haya perdido los datos de nutrición, por ejemplo. La presentación de una receta directamente contará como un análisis de una nueva receta y va a contar como una receta más para la cuenta de licencias de información nutricional. Para evitar esto hemos implementado un sistema basado en “Etag” de HTTP: https: mecanismo de https://en.wikipedia.org/wiki/HTTP_ETag.
En primer lugar, cada receta procesada con éxito también devolverá una etiqueta en la cabecera de la respuesta @ @ ETag. Este valor debe ser preservada, junto con la receta. Entonces, cuando vuelva a presentar la receta, debe incluir el valor en el @ If-None-Match petición @ cabecera.
Hay tres posibles resultados:
Ejempo de la cuenta de licencias. Ha analizado 100 recetas el primer mes, 50 el segundo mes y 1 el tercer mes. El primer mes tendrá que pagar una cuota de licencia para la nutrición de 100 recetas, el segundo mes de 150 y el tercero para 151. Si no analiza ningúna receta más, después del tercer mes tendrá que pagar una cuota de licencia para la nutrición para el total de 151 recetas todos los meses a partir de entonces.
POST
Aqui se un ejemplo usando curl:
Este va a enviar un archivo recipe.json
.
Aqui está el contenido del archivo recipe.json
:
HTTP Status code | Content-Type | Typo | Descripcion |
---|---|---|---|
200 OK | application/json | Receta | Objecto receta con contenido de umero re raciones (yield), numero da colorias total de la receta entera, informacion nutricional (totalNutrients, totalDaily), typo de dieta(dietLabels, healthLabels) |
404 Not Found | text/html | HTML | No podemos encontrar este URL |
422 Uprocessable Entity | text/html | HTML | No podemos leer la receta para analizar la |
555 | text/html | HTML | El contenido de la receta esta de mala calidad |
Aqui puede encontrar ejemplo de la respuesta con informacion al nivel de cada ingrediente
Nota: Puede que sólo un subconjunto de los campos esté presente, dependiendo de la interfaz a través de la cual se obtiene la receta. Consulte la descripción de la interfaz específica para los detalles.
Campo | Tipo | Descripción |
---|---|---|
uri |
string | Identificador de ontología |
yield |
integer | URL de la receta original |
calories |
float | Total de energía, kcal |
totalNutrients |
NutrientInfo[] | Total de nutrientes por porción |
totalDaily |
NutrientInfo[] | % del valor diario por porción |
dietLabels |
enum[] | Etiquetas de dieta: “balanced”, “high-protein”, “high-fiber”, “low-fat”, “low-carb”, “low-sodium” |
healthLabels |
enum[] | Etiquetas de salud: “vegan”, “vegetarian”, “paleo”, “dairy-free”, “gluten-free”, “wheat-free”, “fat-free”, “low-sugar”, “egg-free”, “peanut-free”, “tree-nut-free”, “soy-free”, “fish-free”, “shellfish-free” |
Campo | Tipo | Descripción |
---|---|---|
uri |
string | Identificador de ontología |
quantity |
float | Cantidad de medida especificada |
measure |
Measure | Medida |
weight |
float | Peso total, g |
food |
Food | Comida |
Campo | Tipo | Descripción |
---|---|---|
uri |
string | Identificador de ontología |
label |
string | Etiqueta visualizada |
quantity |
float | Cantidad de unidades especificadas |
unit |
string | Unidades |
Path: https://api.edamam.com/api/nutrition-data
Responde con la informacíon nutricional para el ingrediente especificado.
GET
ConsultaTiene que usar una consulta GET.
Parámetro | Requerido | Typo | Descripción |
---|---|---|---|
app_id |
yes | string | Identificador de aplicación 3scale |
app_key |
yes | string | Llave de aplicación 3scale |
force |
No | El ingrediente que quere analyzar con la cantidad incluida |
El API responde con los valores nutricionales para la cantidad especifica del ingrediente .
GET
A modo de ejemplo, supongamos que queremos encontrar la información nutricional de una manzana. Siempre debe incluir la cantidad y la medida, por lo que tendremos que decir “1 large apple
” no solo “apple
”. Después es necesario que URL-encode- esta cadena. En este caso, esto significa que basta con sustituir los espacios con %20
, para “1%20large%20apple
”. Tenga en cuenta, que las comillas no son parte de la cadena.
Aqui se muestra un ejemplo usando curl:
Respuesta
HTTP Status code | Content-Type | Typo | Descripcion |
---|---|---|---|
200 OK | application/json | Receta | Objeto receta con contenido de numero re raciones (yield), numero da colorias total de la receta entera, informacion nutricional (totalNutrients, totalDaily), typo de dieta(dietLabels, healthLabels) |
404 Not Found | text/html | HTML | No podemos encontrar esté URL |
422 Uprocessable Entity | text/html | HTML | No podemos leer la cadena para analizarla |
555 | text/html | HTML | El contenido del texto es de mala calidad |
Nota: Puede que sólo un subconjunto de los campos este presente, dependiendo de la interfaz a través de la cual se obtiene la receta. Consulte la descripción de la interfaz específica para los detalles.
Campo | Tipo | Descripción |
---|---|---|
uri |
string | Identificador de ontología |
yield |
integer | URL de la receta original |
calories |
float | Total de energía, kcal |
totalNutrients |
NutrientInfo[] | Total de nutrientes por porción |
totalDaily |
NutrientInfo[] | % del valor diario por porción |
dietLabels |
enum[] | Etiquetas de dieta: “balanced”, “high-protein”, “high-fiber”, “low-fat”, “low-carb”, “low-sodium” |
healthLabels |
enum[] | Etiquetas de salud: “vegan”, “vegetarian”, “paleo”, “dairy-free”, “gluten-free”, “wheat-free”, “fat-free”, “low-sugar”, “egg-free”, “peanut-free”, “tree-nut-free”, “soy-free”, “fish-free”, “shellfish-free” |
Campo | Tipo | Descripción |
---|---|---|
uri |
string | Identificador de ontología |
quantity |
float | Cantidad de medida especificada |
measure |
Measure | Medida |
weight |
float | Peso total, g |
food |
Food | Comida |
Campo | Tipo | Descripción |
---|---|---|
uri |
string | Identificador de ontología |
label |
string | Etiqueta visualizada |
quantity |
float | Cantidad de unidades especificadas |
unit |
string | Unidades |
Las etiquetas de nutrición son compartidos por las recetas y alimentos por igual. Ellos son asignados por Edamam sobre la base de los ingredientes contenidos en la etiqueta de los alimentos para los alimentos CPG y por los ingredientes básicos de cada receta para las recetas.
Tipo | Etiqueta Web | Parámetro API | Definición |
---|---|---|---|
Diet |
High-protein | high-protein | Las proteínas proporcionan mas del 50% del total de calorías |
Diet |
Low carb | low-carb | Los carbohidratos proporcionan menos del 20% del total de calorías |
Diet |
Low fat | low-fat | Las grasas proporcionan menos del 15% del total de calorías |
Diet |
Balanced | balanced | Los valores de Proteína/Grasa/Carbohidratos en razón de 15/35/50 |
Diet |
High fiber | high-fiber | Más de 5g de fibra por porción |
Diet |
Low-Sodium | low-sodium | Menos de 140mg Na por porción |
Health |
No-sugar | low-sugar | Sin azúcar natural – glucosa, dextrosa, galactosa, fructuosa, sacarosa, lactosa, maltosa |
Health |
Sugar-conscious | sugar-conscious | Menos de 4g de azúcar por porción |
Health |
n/a | low-fat-abs | Menos de 3g de grase por porción |
Health |
Gluten | gluten-free | Sin ingredientes que contengan gluten |
Health |
Vegetarian | vegetarian | No contiene carnes, aves o pescado |
Health |
Vegan | vegan | No contiene, aves, pescado, lácteos, huevos o miel |
Health |
Paleo | paleo | Se excluye lo que se percibe como productos agrícolas; granos, legumbres, productos lácteos, papas, sal refinada, azúcar refinada y aceites procesados |
Health |
Wheat-free | wheat-free | Sin trigo, aunque puede tener gluten |
Health |
Dairy | dairy-free | Sin lácteos, sin lactosa |
Health |
Eggs | egg-free | Sin huevo o productos que contengan huevo |
Health |
Soy | soy-free | Sin soya o productos que contengan soya |
Health |
Fish | fish-free | Sin pescado o derivados de pescado |
Health |
Shellfish | shellfish-free | Sin mariscos o productos derivados de los mariscos |
Health |
Tree Nuts | tree-nut-free | Sin nueces o productos que contengan nueces |
Health |
Low potassium | low-potassium | Menos de 150mg por porción |
Health |
Alcohol-free | alcohol-free | No se usa alcohol o productos que contengan alcohol |
Health |
No oil added | No-oil-added | No se agrega aceite excepto que lo contenga en los ingredientes básicos |
Health |
Kidney friendly | kidney-friendly | Por porción – fósforo menos de 250 mg Y potasio menos de 500 mg Y sodio menos de 500 mg |
Health |
Peanuts | peanut-free | Sin cacahuetes o productos que contengan cacahuetes |
Health |
Alcohol | alcohol-free | La receta no usa o está hecha con bebidas alcoholicas |