- API
- Punkty końcowe
- /foods/search
Search foods by name
Wyszukuj produkty spożywcze tak, jak wpisuje je użytkownik dziennika żywieniowego. Wyniki łączą dwa katalogi: produkty ogólne („banan”, „pełne mleko”), do których zwykle odnosi się wpis w dzienniku, oraz produkty pakowane z głównego katalogu Tuduu. Każdy wynik zawiera już makroskładniki w przeliczeniu na 100 g oraz swoją porcję, więc wyświetlenie wyniku wyszukiwania nie wymaga dodatkowego żądania. Strony zawierają 15 elementów, a ich rozmiaru nie można konfigurować. Do 5 produktów ogólnych otwiera pierwszą stronę, jeśli zapytanie pasuje do któregokolwiek z nich; wszystkie pozostałe elementy na tej stronie i na każdej kolejnej pochodzą z katalogu produktów pakowanych. Aby przewijać wyniki, odeślij otrzymany „meta.nextCursor”, bez „searchText”: kursor już zawiera zapytanie i ma pierwszeństwo, jeśli wyślesz oba parametry. Wartość null w „nextCursor” oznacza, że nie ma więcej wyników. Przewijanie zatrzymuje się po pierwszych 1000 produktach pakowanych — doprecyzuj zapytanie, aby dotrzeć dalej. Dopasowywanie uwzględnia akcenty, liczbę pojedynczą i mnogą oraz dodatkowe określenia: „caffè zuccherato” zwraca kawę zamiast pustej listy. Zwracane są tylko produkty spożywcze o znanej kaloryczności; wyniki produktów pakowanych są ograniczone do kategorii jadalnych oraz produktów, które podają markę, ponieważ produktu opisanego wyłącznie nazwą nie można odróżnić od jego duplikatów — takie produkty pozostają dostępne za pomocą identyfikatora. Wyniki produktów pakowanych, które podają porcję, pojawiają się jako pierwsze. Tylko język włoski: ten punkt końcowy zwraca 406 dla każdej innej wartości Accept-Language, ponieważ ogólne nazwy produktów spożywczych istnieją wyłącznie w języku włoskim.
Żądanie
FoodSearchRequest
object
FoodSearchRequest
searchText?
Nazwa produktu spożywczego w postaci dowolnego tekstu do wyszukania, wpisywana przez użytkownika dziennika. Wymagana do rozpoczęcia wyszukiwania; ignorowana, gdy przesłano również „cursor”
cursor?
Nieprzezroczysty token zwrócony jako „meta.nextCursor” przez poprzednie wywołanie, służący do pobrania strony następującej po tamtej stronie. Zawiera już zapytanie, więc „searchText” nie jest potrzebny i jest ignorowany, gdy przesłano oba parametry. Nie wysyłaj kursora, aby rozpocząć nowe wyszukiwanie