Let's first understand the Shopping List object and its data structure before looking at its endpoints’ description.
Shopping List Object
A Shopping List object is a collection of arrays and child-objects that defines its data structure.
This is how the data structure of a shopping list looks in JSON format:
Copy {
"list" : {
"id" : "106f9105f1d05d24ad2b833f5d2a966be77" ,
"name" : "My Shopping List"
} ,
"content" : {
"items" : [
{
"id" : "d78b355d-110b-4b31-9f8b-fc221a7a7a3e" ,
"item" : {
"name" : "bacon" ,
"brand" : "Oscar mayer" ,
"comment" : "cooked, crumbled" ,
"quantity" : 8 ,
"unit" : "slices"
} ,
"checked" : true ,
"image_url": "https://whisk-res.cloudinary.com/image/upload/v1550764646/graph/fooddb/0919f5d46996479ba5575bcdc19dc0ba.jpg",
"analysis" : {
"product" : {
"canonical_name" : "BACON" ,
"original_name" : "bacon"
} ,
"category" : {
"canonical_name" : "MEATS AND SEAFOOD"
}
} ,
"recipe" : {
"recipe_id" : "1011f5a116db3c3e56e57bea0a52ffbfca5fc96f6b1" ,
"position" : 5
} ,
"combined" : {
"combined_item_id" : "0ac9b296-9bb6-4043-a85a-02d64ae564b7" ,
"quantity" : 1
} ,
"created_time" : "1614175633" ,
"updated_at" : "1614175806"
} ,
...
] ,
"combined_items" : [
{
"id" : "0ac9b296-9bb6-4043-a85a-02d64ae564b7" ,
"item" : {
"name" : "bacon" ,
"brand" : "Oscar mayer" ,
"comment" : "cooked, crumbled" ,
"quantity" : 10 ,
"unit" : "slices"
} ,
"checked" : true ,
"image_url": "https://whisk-res.cloudinary.com/image/upload/v1550764646/graph/fooddb/0919f5d46996479ba5575bcdc19dc0ba.jpg",
"analysis" : {
"product" : {
"canonical_name" : "BACON" ,
"original_name" : "bacon"
} ,
"category" : {
"canonical_name" : "MEATS AND SEAFOOD"
}
} ,
"created_time" : "1614175633" ,
"updated_at" : "1614175806"
}
] ,
"recipes" : [
{
"id" : "1011f5a116db3c3e56e57bea0a52ffbfca5fc96f6b1" ,
"name" : "Bacon Cheeseburger Casserole" ,
"images" : [
{
"responsive" : {
"url": "https://whisk-res.cloudinary.com/image/upload/v1536910467/recipe/94f698dfcafefe3223aa66f1b3b21ae7.jpg",
"width" : 428 ,
"height" : 640
} ,
"url" : "https://assets.kraftfoods.com/recipe_images/opendeploy/126725_MXM_K59919V0_OR1_CR_640x428.jpg"
}
] ,
"source" : {
"name" : "myfoodandfamily.com" ,
"display_name" : "My Food and Family" ,
"source_recipe_url" : "https://www.myfoodandfamily.com/recipe/126725/bacon-cheeseburger-casserole" ,
"image" : {
"responsive" : {
"url": "https://whisk-res.cloudinary.com/image/upload/v1565965713/publishers/logos/myfoodandfamily-logo.png",
"width" : 256 ,
"height" : 256
} ,
"url": "https://whisk-res.cloudinary.com/image/upload/v1565965713/publishers/logos/myfoodandfamily-logo.png"
} ,
"license" : "LICENCE_FAIRUSE"
}
} ,
...
]
}
}
The following attributes define the core of a shopping list:
list
The list
object contains the shopping list identification details.
Copy {
"list" : {
"id" : "106f9105f1d05d24ad2b833f5d2a966be77" ,
"name" : "My Shopping List"
} ,
content
The content
object contains details of all the shopping list items and their source recipes.
Copy "content" : {
"items" : [
...
] ,
"combined_items" : [
...
] ,
"recipes" : [
...
]
}
items
The items
array stores information on each item that your shopping list contains.
Copy "items" : [
{
"id" : "d78b355d-110b-4b31-9f8b-fc221a7a7a3e" ,
"item" : {
...
} ,
"checked" : true ,
"image_url": "https://whisk-res.cloudinary.com/image/upload/v1550764646/graph/fooddb/0919f5d46996479ba5575bcdc19dc0ba.jpg",
"analysis" : {
...
} ,
"recipe" : {
...
} ,
"combined" : {
...
} ,
"created_time" : "1614175633" ,
"updated_at" : "1614175806"
} ,
...
] ,
The data structure of each list item contains the following attributes:
item
The item
object contains attributes related to the item's credentials and required quantity.
Copy "item" :{
"name" : "bacon" ,
"brand" : "Oscar mayer" ,
"comment" : "cooked, crumbled" ,
"quantity" : 8 ,
"unit" : "slices"
} ,
analysis
The analysis
object includes additional information on the item saved in the database.
Copy "analysis" :{
"product" : {
"canonical_name" : "ONION" ,
"original_name" : "onion"
} ,
"category" : {
"canonical_name" : "FRUITS AND VEGETABLES"
}
} ,
recipe
The recipe
object stores reference of the source recipe that included the item as an ingredient when it was added to the shopping list.
Copy "recipe" :{
"recipe_id" : "1011f5a116db3c3e56e57bea0a52ffbfca5fc96f6b1" ,
"position" : 5
} ,
combined
The combined object includes reference of the combined item in which the current item has been merged.
Copy "combined" :{
"combined_item_id" : "0ac9b296-9bb6-4043-a85a-02d64ae564b7" ,
"quantity" : 1
} ,
combined_items
Copy "combined_items" :[
{
"id" : "0ac9b296-9bb6-4043-a85a-02d64ae564b7" ,
"item" : {
...
} ,
"checked" : true ,
"image_url":"https://whisk-res.cloudinary.com/image/upload/v1550764646/graph/fooddb/0919f5d46996479ba5575bcdc19dc0ba.jpg",
"analysis" : {
...
} ,
"created_time" : "1614175633" ,
"updated_at" : "1614175806"
}
] ,
The combined_items
array includes detailed information of each combined item that exists in the shopping list as a result of merging similar items. A combined item's data structure is identical to the data structure of its original item. However, the quantity
attribute inside the item
array stores a cumulative quantity of all merged items.
recipes
The recipes array contains details of each recipe that was used a source to add items to the shopping list.
Copy "recipes" :[
{
"id" : "1011f5a116db3c3e56e57bea0a52ffbfca5fc96f6b1" ,
"name" : "Bacon Cheeseburger Casserole" ,
"images" : [
{
"responsive" : {
"url":"https://whisk-res.cloudinary.com/image/upload/v1536910467/recipe/94f698dfcafefe3223aa66f1b3b21ae7.jpg",
"width" : 428 ,
"height" : 640
} ,
"url" : "https://assets.kraftfoods.com/recipe_images/opendeploy/126725_MXM_K59919V0_OR1_CR_640x428.jpg"
}
] ,
"source" : {
"name" : "myfoodandfamily.com" ,
"display_name" : "My Food and Family" ,
"source_recipe_url" : "https://www.myfoodandfamily.com/recipe/126725/bacon-cheeseburger-casserole" ,
"image" : {
"responsive" : {
"url":"https://whisk-res.cloudinary.com/image/upload/v1565965713/publishers/logos/myfoodandfamily-logo.png",
"width" : 256 ,
"height" : 256
} ,
"url" : "https://whisk-res.cloudinary.com/image/upload/v1565965713/publishers/logos/myfoodandfamily-logo.png"
} ,
"license" : "LICENCE_FAIRUSE"
}
} ,
...
]
The data structure of each recipe contains the following attributes:
Each of these recipe attributes are covered in the detail in the Recipe API Service .
Endpoints