Menu#
The Menu created for Tokkio reference application of QSR provides a HTTP API that interfaces with the backend menu DB. Menu API is designed to decouple the query logic from the backend solution. The menu database JSON can be modified to add, remove or update an existing item. Each item within the menu is composed out of a json schema which defines that menu item.
Information regarding understanding and modifying the menu DB can be found in Tokkio - Customization section.
API Guide#
Path Table#
Method |
Path |
Description |
---|---|---|
GET |
[/status](#getstatus) |
Web server heartbeat |
GET |
[/menuItem/{itemId}](#getmenuitemitemid) |
Get item with item id |
POST |
[/menuItem](#postmenuitem) |
Find menu items with criteria |
GET |
[/distinct-field](#getdistinct-field) |
Return a list of distinct values for a given field |
GET |
[/menu](#getmenu) |
Return the raw content of menu database |
POST |
[/menu](#postmenu) |
Update menu database with raw input |
Path Details#
[GET]/status
Description: Health probe
Responses
200 OK
[GET]/menuItem/{itemId}
Description: Get menu item with item id
Responses
200 OK
application/json
ts { item_id: string name: string category: string menu_item: boolean variations: { name: string size: string price: number calories: number description: string image: string is_default: boolean }[] recommendations: string[] synonyms: string[] tags: string[] ingredients: string[] toppings: string[] }
400 Invalid input
500 Internal Server Error
[POST]/menuItem
Description: Find menu items with criteria, eq and in condition support regular expression, e.g., re(‘fried .*’)
RequestBody
application/json
ts { filters: { field: enum[item_id, menu_item, name, category, tags, variations, recommendation_type, synonyms, ingredients, toppings] values: [] | string | number | boolean logical: enum[and, or] condition: enum[gte, gt, lte, lt, ne, eq, in] limit: integer }[] sort: enum[asc, desc] order_by: enum[item_id, menu_item, name, category] }Responses
200 OK
application/json
ts { items: { item_id: string name: string category: string menu_item: boolean variations: { name: string size: string price: number calories: number description: string image: string is_default: boolean }[] recommendations: string[] synonyms: string[] tags: string[] ingredients: string[] toppings: string[] }[] count: integer }
400 Invalid input
500 Internal Server Error
[GET]/distinct-field
Summary: Return a list of distinct values for a given field
Description: Return a list of distinct values for a given field.
Parameters(Query)
ts
field: enum[item_id, menu_item, name, category]
Responses
200 OK
application/json
ts { items: string[] count: integer }
400 Invalid input
500 Internal Server Error
[GET]/menu
Summary: Return the raw content of menu database
Description: Return the raw content of menu database.
Responses
200 OK
application/json
500 Internal Server Error
[POST]/menu
Summary: Update menu database with raw input
Description: Update menu database with raw input
RequestBody
application/json
Responses
200 OK
500 Internal Server Error