Food Database API dokumentáció

Ez az Food Database API 2. verziójának dokumentációja. Ha meg szeretné tudni, hogy mik az 1. verzió chnges-jei, kérjük, lépjen a Változási napló

food

Ez az API eszközöket kínál az általános élelmiszerek, csomagolt ételek és éttermi étkezések táplálkozási és étrendi adatainak megkereséséhez. Ezenkívül NLP-t (Natural Language Processing) alkalmaz, amely lehetővé teszi az élelmiszer-entitások kivonását strukturálatlan szövegből.

Fedett használati esetek

  • Keressen egy ételt kulcsszó, étel neve vagy UPC/vonalkód alapján
  • Táplálkozási tények beszerzése egy adott ételhez, beleértve: makro- és mikroelemeket, allergén címkéket, életmód és egészség címkéket
  • Keressen egy ételt 28 tápanyag megadott tápanyagmennyisége alapján
  • Keressen egy adott márkán belüli ételeket
  • A beépített élelmiszer-naplózó kontextus lehetővé teszi az NLP kéréseket a csevegőrobotokhoz és a természetes nyelvű kalóriaszámlálókhoz

Élelmiszer-adatbázis kérések

Elemzési kérelmek: https://api.edamam.com/api/food-database/v2/parser

Élelmiszer-adatbázis szöveges keresése

Az elemző hozzáférési pont kezeli az élelmiszerek szöveges keresését, valamint az élelmiszerek szűrőit, például jelenlét-specifikus tápanyagtartalmat vagy allergének kizárását

  • Keressen egy kifejezést vagy kulcsszót az NLP használatával, hogy élelmiszer-entitásokat kapjon belőle.
  • Szerezzen alapvető táplálkozási tényeket és összetevőket minden egyes ételhez
  • Keressen egy ételt 28 tápanyag megadott tápanyagmennyisége alapján
  • Keressen egy adott márkán belüli ételeket
  • Az élelmiszer-naplózási kontextus lehetővé teszi a kérelmet, amely nem tartalmaz mennyiséget, és a várható mennyiségeket javasolja számukra.

Elemző kérése

GET kérést fog használni az elemző eléréséhez. A UPC-nek vagy az ingr-nek jelen kell lennie egy érvényes kéréshez

Amikor kulcsszó szerint keres

Paraméter szükséges Típus Leírás
app_id Igen Húr Az Ön 3 léptékű alkalmazásazonosítója
app_key Igen Húr Az Ön 3 léptékű alkalmazáskulcsa (vegye figyelembe, hogy az app_id/app_key rendezett pár)
ingr Igen Húr Kulcsszó keresési paraméter, amely megtalálható az élelmiszer nevében. Nem szükséges, ha az upc jelen van
upc Igen Húr Érvényes UPC kód. Nem szükséges, ha ingr van jelen
táplálkozás-típusú nem Húr Ha tápérték-típus = naplózásra van állítva, bekapcsolja az élelmiszer-naplózási funkciót
Egészség nem enum Egészségügyi címke: A jelen diéta végén található diéta és egészségügyi címkék táblázatban felsorolt ​​egyik egészségügyi api paraméter. Például „földimogyoró-mentes”, „fa-dió-mentes”, „szója-mentes”, „hal-mentes”, „kagyló-mentes”
kalória nem hatótávolság A formátum kalória = RANGE, ahol a RANGE helyébe a kcal-ban megadott érték lép. A RANGE a MIN +, MIN - MAX vagy MAX egyikében van, ahol a MIN és MAX nem negatív egész számok. A + szimbólumot megfelelően kell kódolni. Példák: A „kalória = 100–300” minden olyan ételt eredményez, amelynek adagonként 100 és 300 kcal közötti a tartalma.
oldal nem egész szám Elavult paraméter, lásd helyette a Lapozás részt. A paraméter támogatása hamarosan megszűnik. Az oldalparaméter az eladott oldal eredményeit sorolja fel (oldalanként 20). Az első oldal a „0” oldal.
kategória nem húr Kategória as- generikus ételek, általános étkezések, csomagolt ételek, gyorskaják
categoryLabel nem húr Elem típusa - étel vagy étkezés. Az étel általában az étkezés alapvető eleme

Ételnaplózási kontextus használata esetén

Ha az élelmiszer-naplózási kontextus funkciót használja, az alábbi módon módosítja az NLP-választ
- Tételeket mennyiség nélkül is beküldhet. Az Edamam megpróbálja összehangolni őket és mennyiséget rendelni hozzájuk a várható adagméret alapján
- Az API eredményeként csak a közvetlen fogyasztásra kész ételek kerülnek vissza - nincsenek nyers húsok, nyers száraz áruk, például a nyers rizs
- Az Edamam csak egy és két részből álló összetett elemeket képes kezelni - azaz a „csirke” vagy a „rizs ÉS csirke”. Ellenőrizze, hogy az URL megfelelően van-e kódolva

Lapszámozás

A következő oldal megszerzéséhez az API felhasználónak követnie kell az eredmény JSON „_linkek” szakaszának „következő” linkjét, amely így néz ki:

Keresés tápanyagtartomány szerint

Kulcsszó szerinti keresésnél megadhat tápanyagtartományokat is paraméterek hozzáadásával a következő formában:

tápanyagok [NTR] = RANGE ahol

Az NTR a következők egyike: CA, CHOCDF, CHOLE, FAMS, FAPU, FASAT, FAT, FATRN, FE, FIBTG, FOLDFE, K, MG, NA, NIA, P, PROCNT, RIBF, SUGAR, THIA, TOCPHA, VITA_RAE, VITB12, VITB6A, VITC, VITD, VITK1 vagy ZN;

A RANGE a MIN +, MIN - MAX vagy MAX egyikében van, ahol a MIN és MAX nem negatív egész számok.

Például:
tápanyagok [CA] = 50 + legalább 50 mg kalciumot jelent, ahol az „50 +” értéket megfelelően „50% 2B” -ként kell kódolni
tápanyagok [FAT] = 30 legfeljebb 30 g zsírt és
a tápanyagok [FE] = 5-10 jelentése 5 mg és 10 mg közötti vas

A keresési kérelmekben több tápanyagtartományt is kombinálhat

NTR kódnév egység NTR kódnév egység
CA Kalcium mg ENERC_KCAL Energia kcal
CHOCDF Szénhidrát g NIA Niacin (B3) mg
CHOLE Koleszterin mg P Foszfor mg
FAMS Egyszeresen telítetlen g PROCNT Fehérje g
FAPU Többszörösen telítetlen g RIBF Riboflavin (B2) mg
FASAT Telített g CUKOR Cukrok g
ZSÍR Zsír g THIA Tiamin (B1) mg
FATRN Ford g TOCPHA E-vitamin mg
FE Vas mg VITA_RAE A-vitamin æg
FIBTG Rost g VITB12 B12-vitamin æg
FOLDFE Folát (egyenértékű) æg VITB6A B6-vitamin mg
K Kálium mg VITC C vitamin mg
MG Magnézium mg VITD D-vitamin æg
NA Nátrium mg VITK1 K-vitamin æg

Példa értelmező kérésre

Példaként tegyük fel, hogy az élelmiszer-adatbázisban egyezéseket akarunk találni egy piros almára. Akkor nekünk kell URL -encode ez a húr. Ebben az esetben ez azt jelenti, hogy a szóközöket egyszerűen kicseréljük% 20-ra, így „piros% 20apple” lesz.
Íme egy példa a curl használatára:

MEGJEGYZÉS: Kérjük, győződjön meg arról, hogy a pontos API-hoz készített hitelesítő adatokat használta, mivel azok alkalmazás- és tervspecifikusak. A $ < >a jelölés a bemenet típusát jelenti, és NEM szerepelhet magában a kérésben.

Bekapcsolt „élelmiszer-naplózás”:

Elemző válasza

HTTP állapotkód Leírás 200 OK 404 nem található
Élelmiszertárgyak listája, minden egyes élelmiszer-objektummal: kcal/100 gramm, fehérje/100 gramm, szénhidrát/100 gramm, az élelmiszer márkája, ha az élelmiszer általános vagy hamis, az élelmiszerre vonatkozó meglévő intézkedések felsorolása, étel
A megadott URL nem található, vagy nem sikerült lekérni

Elemezve

A mező típusának leírása
foodId húr Egyedülálló élelmiszer-azonosító
címke húr Címke megjelenítése
intézkedés Intézkedés Mérési URI-t és megjelenítő címkét tartalmaz
tápanyagok Tápanyagok Kcal, fehérje, zsír, szénhidrát mennyisége, ha> 0

MEGJEGYZÉS: A válasz „elemzett” szakasza tartalmazza a kérés NLP általi kezelésének közvetlen eredményét, mennyiségre/mértékre/ételre lebontva. Ezeket az adatokat felhasználják a „tippek” szakasz eredményeinek előállításához.

Tippek

A mező típusának leírása
foodId húr Egyedülálló élelmiszer-azonosító
címke húr Címke megjelenítése
intézkedés Intézkedés Tartalmaz egy listát a rendelkezésre álló, meghatározott élelmiszer-mérték URI-ról és a címkékről
tápanyagok Tápanyagok Kcal, fehérje, zsír, szénhidrát mennyisége, ha> 0
márka húr Például a „Burger King” márka a „hamburger” tételhez
kategória húr Kategória: általános ételek (nem márkás alapanyagok), általános ételek (nem márkás generikus ételek), csomagolt ételek (vonalkóddal ellátott termékek), gyorsételek (éttermi láncok)
categoryLabel húr A cikk típusa ételként vagy étkezésként. Az étel általában az étkezés alapvető eleme
kép húr URL-t tartalmaz az élelmiszer képéhez, ha elérhető
szolgálóMéretek Intézkedés A csomagolás címkéjén felsorolt, a csomagolt élelmiszerek adagolási méretét tartalmazza

Példa válasz a szöveges keresésre

* Táplálkozási adatok kérései

Táplálkozási igények: https://api.edamam.com/api/food-database/v2/nutrients

Az elemzői kérésre adott válaszban megkapja az élelmiszer-azonosítót minden adatbázis-egyezéshez. Az élelmiszer-azonosító és az elemző által biztosított URI-mérő segítségével kérelmet nyújthat be a tápanyagok hozzáférési pontjához. A tápanyagok hozzáférési pontjai a táplálékot étrend- és egészségügyi címkékkel adják vissza az adott élelmiszermennyiséghez.

Tápanyagok kérése

A kérelem tartalmának JSON objektumnak kell lennie a következő formátumban:

Paraméter szükséges Típus Leírás
összetevők Igen Hozzávaló[] összetevő (egy összetevő tömbje)

Hozzávaló

Paraméter szükséges Típus Leírás
Mennyiség Igen szám Az összetevő mennyisége
intézkedésURI Igen Húr az értelmező válaszában kapott mérési URI egyikét
foodId Igen Húr Az elemző válaszban kapott élelmiszer-azonosító)

Az egyes ételekre vonatkozó Parser válasz minden speciális intézkedést tartalmaz erre az ételre. Például, ha egy almának van egy „szelet” nevű sajátos egysége, akkor az API válaszával érkezik .

Az API által biztosított egységeken kívül az Edamam gyakorlatilag minden étel tömeg- és térfogatmérését támogatja. Az Edamam nem adja vissza őket az API-ban, mivel feleslegessé és nehézkessé teszi a választ.

Az alábbiakban felsoroljuk azokat a szokásos támogatott intézkedéseket, amelyek az étellel együtt visszaküldött intézkedéseken kívül alkalmazhatók:

Név URI
Uncia http://www.edamam.com/ontologies/edamam.owl#Measure_ounce
Gramm http://www.edamam.com/ontologies/edamam.owl#Measure_gram
Font http://www.edamam.com/ontologies/edamam.owl#Measure_pound
Kilogramm http://www.edamam.com/ontologies/edamam.owl#Measure_kilogram
Csipet http://www.edamam.com/ontologies/edamam.owl#Measure_pinch
Liter http://www.edamam.com/ontologies/edamam.owl#Measure_liter
Folyadék uncia http://www.edamam.com/ontologies/edamam.owl#Measure_fluid_ounce
Gallon http://www.edamam.com/ontologies/edamam.owl#Measure_gallon
Pint http://www.edamam.com/ontologies/edamam.owl#Measure_pint
Kvart http://www.edamam.com/ontologies/edamam.owl#Measure_quart
Milliliter http://www.edamam.com/ontologies/edamam.owl#Measure_milliliter
Csepp http://www.edamam.com/ontologies/edamam.owl#Measure_drop
Csésze http://www.edamam.com/ontologies/edamam.owl#Measure_cup
Evőkanál http://www.edamam.com/ontologies/edamam.owl#Measure_tablespoon
Teáskanál http://www.edamam.com/ontologies/edamam.owl#Measure_teaspoon

Egy adott intézkedés tartalmazhat vagy nem tartalmazhat „minősített” mezőt. Ez a mező tartalmazza az alapméret lehetséges mértékminősítőit, amelyek mindegyikének saját URI-ja van. Például az „alma” tételnél az egyik mérték „egész”, a „nagy”, a „kicsi” stb.

Az URI mérőszámmal együtt benyújtva a minősítő URI megváltoztatja az alapméret súlyát.

Az API visszaadja a megadott összetevő táplálkozási elemzését.

Minden ételhez tartozik a hozzá tartozó speciális egységek listája. Például, ha egy almának van egy szelet nevű egysége, akkor az API válaszával érkezik .

Példa tápanyagok kérésére

A „tápanyagok” eléréséhez POST kérést fog használni.

Íme egy példa a curl használatára:

Ez elküldi az food.json fájlt feldolgozásra.

Itt található az food.json fájl tartalma:

Ha rendelkezésre áll egy minősítő egy adott mérőszámhoz, az a következő módon használható:

Tápanyagok reakciója

HTTP állapotkód Tartalomtípus Típus Leírás
200 OK alkalmazás/json FoodInfo Tárgy, amely az adagok számát (hozam), az étel összes kalóriáját (kalóriákat), tápanyag-tartalmat tápanyagtípusonként (összesenTápanyagok, összesnapi), étrendet és egészségügyi besorolást (étrendcímkék, egészségügyi címkék)
404 nem található szöveg/html HTML A megadott URL nem található, vagy nem sikerült lekérni
422 Feldolgozható entitás szöveg/html HTML Nem sikerült elemezni a kérést vagy kivonni a táplálkozási információkat
555 szöveg/html HTML A megfelelő feldolgozáshoz nem megfelelő minőségű szöveg

Példa tápanyagok válaszára

Nutirion

mezőtípus leírása
uri húr Ontológia azonosító
kalória úszó Teljes energia, kcal
összesenTápanyagok NutrientInfo [*] Összes tápanyag
totalDaily NutrientInfo [*] % Napi érték
diétaCímkék enum [] Diétás címkék: „kiegyensúlyozott”, „magas fehérjetartalmú”, „magas rosttartalmú”, „alacsony zsírtartalmú”, „alacsony szénhidráttartalmú”, „alacsony nátriumtartalmú”
egészségcímkék enum [] Egészségügyi címkék: „vegán”, „vegetáriánus”, „tejmentes”, „alacsony cukortartalmú”, „alacsony zsírtartalmú abs”, „cukortudatos”, „zsírmentes”, „gluténmentes”, „búzamentes” ”

A „Táplálkozási címkék meghatározása” című témakörért olvassa el a dokumentum alján található táblázatot

NutrientInfo

mezőtípus leírása
uri húr Ontológia azonosító
címke húr Címke megjelenítése
Mennyiség úszó A meghatározott egységek mennyisége
Mértékegység húr Egységek

Hozzávaló

A mező típusának leírása
uri húr Ontológia azonosító
Mennyiség úszó A meghatározott intézkedés mennyisége
intézkedés Intézkedés Intézkedés
súly úszó Teljes tömeg, g
étel Étel Étel

UPC vagy vonalkód keresés

Lehetővé teszi az elem keresését UPC/vonalkód szám alapján.

Ez egy olyan szolgáltatás, amely lehetővé teszi UPC vagy vonalkód beküldését, és annak megfelelő találást az élelmiszer-adatbázisban.

Paraméter szükséges Típus Leírás
app_id Igen Húr Az Ön 3 léptékű alkalmazásazonosítója
app_key Igen Húr Az Ön 3 léptékű alkalmazáskulcsa (vegye figyelembe, hogy az app_id/app_key rendezett pár)
upc Igen* szám Az élelmiszer UPC- vagy vonalkódszáma

Íme egy példa a curl használatára:
"https://api.edamam.com/api/food-database/v2/parser?upc=&app_id=&app_key="

Automatikus kiegészítés kérése

Az Edamam kényelmes autocomplete funkciót biztosít, amely felhasználható az összetevők keresésekor.

Pálya: http://api.edamam.com/auto-complete

A végpont javaslatokat ad a hozzá benyújtott szöveghez. Itt egy példa

A táplálkozási címkéket receptek és ételek egyaránt megosztják. Az Edamam hozzárendeli őket a CPG élelmiszerek címkéjén szereplő összetevők és az egyes receptek alapanyagai alapján.

Típusok

Az összetett típusokat a JSON reprezentációjuk alapján írják le.

A leírások során a következő jelöléseket használják:

  • Az integer, float és string a JavaScript primitív típusokat jelenti: egész, float és string
  • az enum olyan karakterlánc mezőt jelent, amely csak egy előre meghatározott tartomány értékeit veszi fel (a tartomány adott esetben meg van adva)
  • T [] a T típusú objektumok tömbjét jelenti
  • A T [*] olyan objektumot jelöl (asszociatív térkép), amelynek minden mezője (eleme) T típusú .