Документація API бази даних про їжу
Це документація до версії 2 API бази даних про їжу. Якщо вам потрібно побачити, які зміни у версії 1, перейдіть до Журнал змін
Цей API надає вам інструменти для пошуку даних про харчування та дієту для загальних продуктів, упакованих продуктів та страв у ресторанах. Крім того, в ньому використовується NLP (обробка природних мов), що дозволяє витягувати харчові об'єкти з неструктурованого тексту.
Покриті випадки використання
- Шукайте їжу за ключовим словом, назвою їжі або UPC/штрих-кодом
- Визначення фактів харчування для даної їжі, включаючи: макро- та мікроелементи, маркування алергенів, етикетки способу життя та здоров’я
- Шукайте їжу за даною кількістю поживних речовин для 28 поживних речовин
- Шукайте продукти харчування певної марки
- Завдяки вбудованому контексту реєстрації продуктів, він дозволяє запити NLP для чатових ботів та лічильників калорій на природній мові
Запити бази даних про їжу
Розбір запитів: https://api.edamam.com/api/food-database/v2/parser
Пошук тексту по базі даних про їжу
Точка доступу синтаксичного аналізатора здійснює пошук тексту продуктів, а також фільтрів для продуктів, таких як вміст поживних речовин або виключення алергенів.
- Шукайте фразу або ключове слово за допомогою NLP, щоб отримати з них харчові сутності.
- Отримайте основні факти харчування та інгредієнти для кожної їжі
- Шукайте їжу за даною кількістю поживних речовин для 28 поживних речовин
- Шукайте продукти харчування певної марки
- Завдяки побудові в контексті реєстрації продуктів харчування, він дозволяє надсилати запити, які не містять кількості, і пропонувати очікувані кількості для них.
Запит аналізатора
Ви отримаєте запит GET для доступу до аналізатора. Для дійсного запиту повинні бути присутніми або UPC, або ingr
При пошуку за ключовим словом
app_id | так | Рядок | Ваш 3-масштабний ідентифікатор програми |
app_key | так | Рядок | Ваш ключ програми 3scale (зверніть увагу, app_id/app_key - це впорядкована пара) |
інгр | так | Рядок | Параметр пошуку за ключовим словом, який можна знайти в назві їжі. Не потрібно, коли присутній upc |
upc | так | Рядок | Дійсний код UPC. Не потрібно, коли присутній ingr |
дієтичний тип | ні | Рядок | Коли встановлено значення типу харчування = реєстрація, вона включає функцію реєстрації їжі |
здоров'я | ні | перерахування | Етикетка стану здоров’я: Один із параметрів API здоров’я, зазначений у таблиці Дієта та етикетки здоров’я в кінці цієї документації. Наприклад, "без арахісу", "без горіхів", "без сої", "без риби", "без молюсків" |
калорій | ні | діапазон | Формат - калорії = RANGE, де RANGE замінюється значенням у ккал. RANGE знаходиться в одному з MIN +, MIN - MAX або MAX, де MIN і MAX - невід’ємні цілі числа. Символ + потрібно правильно закодувати. Приклади: “калорії = 100-300” повертає всі продукти, які містять від 100 до 300 ккал на порцію. |
сторінки | ні | ціле число | Застарілий параметр, натомість див. Розділ "Розбиття сторінок". Підтримку цього параметра незабаром буде видалено. Параметр сторінки містить результати із вибраної сторінки (20 на сторінку). Перша сторінка - це сторінка “0”. |
категорії | ні | рядок | Категорія як- генеричні продукти, загальне харчування, упаковані продукти, фаст-фуд |
categoryLabel | ні | рядок | Тип товару як - їжа або їжі. Їжа, як правило, є основним компонентом їжі |
При використанні контексту реєстрації продуктів харчування
Якщо ви використовуєте функцію контексту реєстрації продуктів, це змінить відповідь NLP наступним чином
- Ви можете подавати товари без кількості. Едамам спробує зрівняти їх і призначити їм кількість на основі очікуваного розміру порції
- API поверне як результат лише продукти, готові до безпосереднього споживання - без сирого м’яса, сирих сухих товарів, як, наприклад, сирий рис
- Edamam може обробляти лише окремі предмети та лише дві складові речі - наприклад, «курка» або «рис І курка». Переконайтесь, що URL-адреса правильно закодована
Пагінація
Щоб отримати наступну сторінку, користувачеві API слід перейти за посиланням “next” із розділу “_links” в результаті JSON, який виглядає так:
Пошук за діапазоном поживних речовин
При пошуку за ключовим словом ви також можете вказати діапазон поживних речовин, додавши параметри у такій формі:
поживні речовини [NTR] = ДИАПАЗОН де
NTR є одним із: 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 або ZN;
RANGE знаходиться в одному з MIN +, MIN - MAX або MAX, де MIN і MAX - невід’ємні цілі числа.
Наприклад:
поживні речовини [CA] = 50 + означає мінімум 50 мг кальцію, де значення «50+» має бути належним чином закодовано як «50% 2B»
поживні речовини [FAT] = 30 означає максимум 30 г жиру та
поживні речовини [ІП] = 5-10 означає залізо від 5 мг до 10 мг включно
Ви можете поєднати більше одного діапазону поживних речовин у запитах на пошук
CA | Кальцій | мг | ENERC_KCAL | Енергія | ккал |
CHOCDF | Вуглеводи | g | NIA | Ніацин (B3) | мг |
ХОЛ | Холестерин | мг | P | Фосфор | мг |
ВІДОМІ | Мононенасичений | g | ПРОКНТ | Білок | g |
ФАПУ | Поліненасичені | g | RIBF | Рибофлавін (В2) | мг |
FASAT | Насичений | g | ЦУКР | Цукри | g |
ТУР | Жир | g | ТІА | Тіамін (B1) | мг |
FATRN | Транс | g | ТОФФА | Вітамін Е | мг |
ІП | Залізо | мг | VITA_RAE | Вітамін А | æg |
FIBTG | Клітковина | g | VITB12 | Вітамін В12 | æg |
FOLDFE | Фолат (еквівалент) | æg | VITB6A | Вітамін В6 | мг |
К | Калій | мг | VITC | Вітамін С | мг |
MG | Магній | мг | VITD | Вітамін D | æg |
НС | Натрію | мг | ВІТК1 | Вітамін К | æg |
Приклад запиту синтаксичного аналізатора
Як приклад, скажімо, ми хочемо знайти збіги в базі даних про їжу для червоного яблука. Тоді нам потрібно URL -код цей рядок. У цьому випадку це означає просто замінити пробіли на% 20, тому він стає "червоним% 20apple". Зверніть увагу, що лапки не є частиною рядка.
Ось приклад використання curl:
ПРИМІТКА. Будь ласка, переконайтеся, що ви використовуєте облікові дані, які ви створили для цього точного API, оскільки вони стосуються додатка та плану. $ < >Позначення означає тип введення і НЕ повинно включатись у сам запит.
З увімкненим режимом "реєстрація продуктів":
Відповідь аналізатора
Список харчових продуктів, кожен із яких містить: ккал на 100гр, білок на 100г, вуглеводи на 100г, марка їжі, якщо їжа є загальною або брендидною, список існуючих заходів щодо їжі, етикетка вмісту їжа |
Вказану URL-адресу не знайдено або її не вдалось отримати |
Проаналізовано
foodId | рядок | Унікальний ідентифікатор їжі |
етикетці | рядок | Відобразити ярлик |
міра | Виміряйте | Містить URI міри та мітку на дисплеї |
поживні речовини | Поживні речовини | Кількість ккал, білка, жиру, вуглеводів, якщо> 0 |
ПРИМІТКА. Розділ „проаналізований” відповіді містить прямий результат обробки запиту за допомогою НЛП, розбитий на кількість/міру/їжу. Потім ці дані використовуються для отримання результатів із розділу «підказки».
Підказки
foodId | рядок | Унікальний ідентифікатор їжі |
етикетці | рядок | Відобразити ярлик |
міра | Виміряйте | Містить перелік доступних конкретних URI і вимірювальних табличок |
поживні речовини | Поживні речовини | Кількість ккал, білка, жиру, вуглеводів, якщо> 0 |
торгова марка | рядок | Наприклад бренд «Burger King» для товару «гамбургер» |
категорії | рядок | Категорія як: Загальні продукти (не фірмові основні інгредієнти), Загальні страви (не фірмові загальні страви), Упаковані продукти (товари зі штрих-кодом), Швидке харчування (ресторанні мережі) |
categoryLabel | рядок | Тип товару як їжа чи їжа. Їжа, як правило, є основним компонентом їжі |
зображення | рядок | Містить URL-адресу зображення їжі, коли вона доступна |
розміри порції | Виміряйте | Містить інформацію про розмір упаковки упакованих харчових продуктів, як зазначено на етикетці упаковки |
Приклад відповіді на пошук тексту
* Запити на дані про харчування
Запити на харчування: https://api.edamam.com/api/food-database/v2/nutrients
У відповідь на ваш запит синтаксичного аналізатора ви отримуєте ідентифікатор їжі для кожного збігу бази даних. Використовуючи ідентифікатор їжі та URI міри, який надає синтаксичний аналізатор, ви можете подати запит до точки доступу поживних речовин. Точки доступу до поживних речовин повертають харчування з позначеннями дієти та здоров’я для певної кількості їжі.
Запит на поживні речовини
Вміст запиту повинен бути об'єктом JSON у наступному форматі:
інгредієнти | так | Інгредієнт [] | інгредієнт (масив одного інгредієнта) |
Інгредієнт
кількість | так | номер | Кількість інгредієнта |
міраURI | так | Рядок | один для вимірювального URI, отриманого у відповіді синтаксичного аналізатора |
foodId | так | Рядок | Ідентифікатор їжі, отриманий у відповіді аналізатора) |
Відповідь аналізатора на кожну їжу містить усі спеціалізовані заходи щодо цієї їжі. Наприклад, якщо у яблука є конкретна одиниця з назвою «зріз», воно надійде із відповіддю з API .
На додаток до одиниць, передбачених API, Edamam підтримує практично будь-які показники ваги та обсягу для всіх продуктів. Edamam не повертає їх в API, оскільки робить відповідь надмірною та громіздкою.
Ось перелік стандартних підтримуваних заходів, які можна використовувати на додаток до заходів, повернутих разом із їжею:
Унція | http://www.edamam.com/ontologies/edamam.owl#Measure_ounce |
Грам | http://www.edamam.com/ontologies/edamam.owl#Measure_gram |
Фунт | http://www.edamam.com/ontologies/edamam.owl#Measure_pound |
Кілограм | http://www.edamam.com/ontologies/edamam.owl#Measure_kilogram |
Щіпка | http://www.edamam.com/ontologies/edamam.owl#Measure_pinch |
Літр | http://www.edamam.com/ontologies/edamam.owl#Measure_liter |
Унція рідини | http://www.edamam.com/ontologies/edamam.owl#Measure_fluid_ounce |
Галону | http://www.edamam.com/ontologies/edamam.owl#Measure_gallon |
Пінта | http://www.edamam.com/ontologies/edamam.owl#Measure_pint |
Кварта | http://www.edamam.com/ontologies/edamam.owl#Measure_quart |
Мілілітр | http://www.edamam.com/ontologies/edamam.owl#Measure_milliliter |
Падіння | http://www.edamam.com/ontologies/edamam.owl#Measure_drop |
Кубок | http://www.edamam.com/ontologies/edamam.owl#Measure_cup |
Столова ложка | http://www.edamam.com/ontologies/edamam.owl#Measure_tablespoon |
Чайна ложка | http://www.edamam.com/ontologies/edamam.owl#Measure_teaspoon |
Даний показник може містити, а може і не містити поля "кваліфікований". Це поле містить можливі класифікатори міри основного міри, кожен з яких має власний URI. Наприклад, для елемента "яблуко" одним із показників є "ціле" з класифікаторами "великий", "малий" тощо.
Коли його подають разом з URI міри, URI класифікатора змінює вагу основної міри.
API повертає аналіз поживності для зазначеного інгредієнта.
Кожна їжа постачається зі списком спеціалізованих одиниць, які до неї належать. Наприклад, якщо яблуко має певну одиницю з назвою фрагмент, воно надійде із відповіддю з API .
Приклад запиту на поживні речовини
Ви будете використовувати запит POST для доступу до "поживних речовин".
Ось приклад використання curl:
Це надішле файл food.json на обробку.
Ось вміст файлу food.json:
Коли для даного показника доступний кваліфікатор, його можна використовувати наступним чином:
Відповідь поживних речовин
200 Добре | application/json | FoodInfo | Об'єкт, що містить кількість порцій (вихід), загальну калорійність їжі (калорій), вміст поживних речовин за типом поживних речовин (totalNutrients, totalDaily), дієту та класифікацію здоров'я (dietLabels, healthLabels) |
404 Не знайдено | текст/html | HTML | Вказану URL-адресу не знайдено або її не вдалось отримати |
422 Неопрацьована сутність | текст/html | HTML | Не вдалося проаналізувати запит або отримати інформацію про поживні речовини |
555 | текст/html | HTML | Текст недостатньо якісний для правильної обробки |
Приклад відповіді поживних речовин
Нутіріон
урі | рядок | Ідентифікатор онтології |
калорій | плавати | Загальна енергія, ккал |
всього Поживні речовини | Інформація про поживні речовини [*] | Загальна кількість поживних речовин |
totalDaily | Інформація про поживні речовини [*] | % добового значення |
дієта етикетки | перерахувати [] | Дієтичні етикетки: «збалансований», «з високим вмістом білка», «з високим вмістом клітковини», «з низьким вмістом жиру», «з низьким вмістом вуглеводів», «з низьким вмістом натрію» |
ярлики здоров’я | перерахувати [] | Етикетки охорони здоров’я: “веганські”, “вегетаріанські”, “без молочних продуктів”, “з низьким вмістом цукру”, “з низьким вмістом жиру”, “без цукру”, “без жиру”, “без глютену”, “без пшениці " |
Докладнішу інформацію щодо „Визначень харчових етикеток” див. У таблиці внизу цього документа
Інформація про поживні речовини
урі | рядок | Ідентифікатор онтології |
етикетці | рядок | Відобразити ярлик |
кількість | плавати | Кількість зазначених одиниць |
од | рядок | Одиниці |
Інгредієнт
урі | рядок | Ідентифікатор онтології |
кількість | плавати | Кількість зазначеної міри |
міра | Виміряйте | Виміряйте |
вага | плавати | Загальна вага, г. |
їжа | Їжа | Їжа |
UPC або пошук штрих-коду
Дозволяє здійснювати пошук товару на основі UPC/номера штрих-коду.
Це послуга, яка дозволяє подати UPC або штрих-код та знайти відповідність йому в базі даних про продукти харчування.
app_id | так | Рядок | Ваш 3-масштабний ідентифікатор програми |
app_key | так | Рядок | Ваш ключ програми 3scale (зверніть увагу, app_id/app_key - це впорядкована пара) |
upc | так* | номер | UPC або номер штрих-коду для їжі |
Ось приклад використання curl:
'https://api.edamam.com/api/food-database/v2/parser?upc=&app_id=&app_key='
Запит на автозаповнення
Edamam надає зручну функцію автозаповнення, яку можна використовувати під час пошуку інгредієнтів.
Шлях: http://api.edamam.com/auto-complete
Кінцева точка повертає пропозиції щодо поданого до неї тексту. Ось приклад
Етикетки харчування поділяються як на рецепти, так і на продукти. Вони призначаються Edamam на основі інгредієнтів, що містяться на етикетці продуктів харчування для продуктів CPG, та основних інгредієнтів кожного рецепта рецептів.
Типи
Складені типи описані з точки зору їх представлення JSON.
В описах використовуються такі позначення:
- integer, float та string - це примітивні типи JavaScript, цілі числа, float та string, відповідно
- enum означає поле рядка, яке приймає значення лише з попередньо визначеного діапазону (діапазон вказується там, де це необхідно)
- T [] означає масив об'єктів типу T
- T [*] означає об'єкт (асоціативна карта), кожне поле (елемент) якого має тип T .
- Їжа, яка може затримати менопаузу - перша для жінок
- Харчові методи лікування геморою - TCM Wiki
- Їжа, яка підкорила світовий спартанський чорний бульйон від Денні Кейна, що вивчає історію історії
- Їжа, яка будує кістки
- Харчові свопи, які допоможуть вам краще харчуватися