Yummy pizza backend, written in Laravel, available endpoints:
Deployed at: https://krismp-yummy-pizza-backend.herokuapp.com/api/products
+--------+----------+---------------------+------+------------------------------------------------------+--------------+
| Domain | Method | URI | Name | Action | Middleware |
+--------+----------+---------------------+------+------------------------------------------------------+--------------+
| | GET|HEAD | / | | Closure | web |
| | POST | api/cart_items | | App\Http\Controllers\API\CartItemController@store | api |
| | DELETE | api/cart_items/{id} | | App\Http\Controllers\API\CartItemController@destroy | api |
| | POST | api/carts | | App\Http\Controllers\API\CartController@store | api |
| | GET|HEAD | api/carts/{id} | | App\Http\Controllers\API\CartController@show | api |
| | POST | api/login | | App\Http\Controllers\API\RegisterController@login | api |
| | GET|HEAD | api/orders | | App\Http\Controllers\API\OrderController@index | api,auth:api |
| | POST | api/orders | | App\Http\Controllers\API\OrderController@store | api |
| | GET|HEAD | api/products | | App\Http\Controllers\API\ProductController@index | api |
| | GET|HEAD | api/products/{id} | | App\Http\Controllers\API\ProductController@show | api |
| | POST | api/register | | App\Http\Controllers\API\RegisterController@register | api |
+--------+----------+---------------------+------+------------------------------------------------------+--------------+
POST http://localhost:8000/api/login
Request body:
{
"name": "John Doe",
"email": "johndoe@gmail.com",
"password": "password",
"c_password": "password"
}
Response:
{
"success": true,
"data": {
"token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJhdWQiOiIxIiwianRpIjoiMDYxNWQ1OTJiNTlhMDFkNzViY2Y2MzI4YTA2NDdmZWViMTIwYTdmYTk2ODFjODY2Mzc5OTZkNWY4ZDY4NGIzOTg5YWJjNDZkNTA0N2JlYTUiLCJpYXQiOjE1ODk2NDAxNzcsIm5iZiI6MTU4OTY0MDE3NywiZXhwIjoxNjIxMTc2MTc3LCJzdWIiOiIyIiwic2NvcGVzIjpbXX0.RA29-XXmeMEKYUpqkoD0I_vqx3-91XBI7HG11tlYSWvcbYJ7apn-899defjr86XZV3M-UBc9UAO_5QpNsLB9mwzdVu-wKCClSogEQDp5tutsNJRnGakWpZDDbpiki7tuks380ejfmEn1U1EHwF1MkeQkk6BY7JFcwK9ZurBdhnaE0_0ln14vUA_9m71cqemYXfStD0W9siJIHcpUc3EvBjcVWGMYdx6fS1bKk_uxvNnGLYSB2uk2D451DdTE3RCMGTCkyPj7cUrMQHqrm7UuVp_0Wfp38cPuz7aoT9w3ooZmjUPwkfB_UKaiWuLpVeSewEXDV_HbeAjlQubUtqMPTgwX9Kfqv7U8G6s9FdxM6qor92p9Ns4SeM4_iLA1160EgWyEFgycBXcYfRd_fgRJ5Bg7xtOt6u5OLD9guZdqiKYti19pak40nghnx1l64y5XkXI3HP_NczswuVZvIbmCwRb3nR8p5YsP8KBYFwjniwCK2eDTzaAtLWyFK08K9PAhVFFOA31yP29qYCq-Lazw3eL5_7pK9HO06i_6nVLpX883YzIdFLxwcUI8nAFc1MKOdaElxIYEDSxiJJsUfjG1TeSws4dpiKC3UzFw52oThDGsIF_D16fiNv00FgekAEkRuodj2pfxOFDmBCy-00RxWbKBI79foTlsVjgcS5Tu0h8",
"name": "John Doe",
"id": 2
},
"message": "User register successfully."
}
POST localhost:8000/api/login
Request Body:
{
"email": "johndoe@gmail.com",
"password": "password"
}
Response:
{
"success": true,
"data": {
"token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJhdWQiOiIxIiwianRpIjoiMDYxNWQ1OTJiNTlhMDFkNzViY2Y2MzI4YTA2NDdmZWViMTIwYTdmYTk2ODFjODY2Mzc5OTZkNWY4ZDY4NGIzOTg5YWJjNDZkNTA0N2JlYTUiLCJpYXQiOjE1ODk2NDAxNzcsIm5iZiI6MTU4OTY0MDE3NywiZXhwIjoxNjIxMTc2MTc3LCJzdWIiOiIyIiwic2NvcGVzIjpbXX0.RA29-XXmeMEKYUpqkoD0I_vqx3-91XBI7HG11tlYSWvcbYJ7apn-899defjr86XZV3M-UBc9UAO_5QpNsLB9mwzdVu-wKCClSogEQDp5tutsNJRnGakWpZDDbpiki7tuks380ejfmEn1U1EHwF1MkeQkk6BY7JFcwK9ZurBdhnaE0_0ln14vUA_9m71cqemYXfStD0W9siJIHcpUc3EvBjcVWGMYdx6fS1bKk_uxvNnGLYSB2uk2D451DdTE3RCMGTCkyPj7cUrMQHqrm7UuVp_0Wfp38cPuz7aoT9w3ooZmjUPwkfB_UKaiWuLpVeSewEXDV_HbeAjlQubUtqMPTgwX9Kfqv7U8G6s9FdxM6qor92p9Ns4SeM4_iLA1160EgWyEFgycBXcYfRd_fgRJ5Bg7xtOt6u5OLD9guZdqiKYti19pak40nghnx1l64y5XkXI3HP_NczswuVZvIbmCwRb3nR8p5YsP8KBYFwjniwCK2eDTzaAtLWyFK08K9PAhVFFOA31yP29qYCq-Lazw3eL5_7pK9HO06i_6nVLpX883YzIdFLxwcUI8nAFc1MKOdaElxIYEDSxiJJsUfjG1TeSws4dpiKC3UzFw52oThDGsIF_D16fiNv00FgekAEkRuodj2pfxOFDmBCy-00RxWbKBI79foTlsVjgcS5Tu0h8",
"name": "John Doe",
"id": 2
},
"message": "User login successfully."
}
GET http://localhost:8000/api/products
Response:
{
"success": true,
"data": [
{
"id": 1,
"name": "Pizza A0LhV",
"detail": "Ex ad nisi aliqua qui ea sunt aliqua eu velit adipisicing. Voluptate minim duis Lorem cupidatat elit. Magna aliquip sunt tempor ea in consectetur nostrud occaecat sit duis aliqua est commodo. Occaecat occaecat esse nulla voluptate sit. Dolore minim in culpa culpa. Deserunt qui pariatur Lorem consectetur magna tempor tempor dolor. Exercitation commodo velit velit non tempor.",
"price_in_usd": "32.48",
"stock": null,
"image": "https://images.pexels.com/photos/803290/pexels-photo-803290.jpeg?auto=compress&cs=tinysrgb&dpr=3&h=750&w=1260",
"created_at": "16/05/2020",
"updated_at": "16/05/2020"
},
{
"id": 2,
"name": "Pizza VvUwr",
"detail": "Ex ad nisi aliqua qui ea sunt aliqua eu velit adipisicing. Voluptate minim duis Lorem cupidatat elit. Magna aliquip sunt tempor ea in consectetur nostrud occaecat sit duis aliqua est commodo. Occaecat occaecat esse nulla voluptate sit. Dolore minim in culpa culpa. Deserunt qui pariatur Lorem consectetur magna tempor tempor dolor. Exercitation commodo velit velit non tempor.",
"price_in_usd": "25.14",
"stock": null,
"image": "https://images.pexels.com/photos/803290/pexels-photo-803290.jpeg?auto=compress&cs=tinysrgb&dpr=3&h=750&w=1260",
"created_at": "16/05/2020",
"updated_at": "16/05/2020"
},
...
],
"message": "Products retrieved successfully."
}
GET http://localhost:8000/api/products/{id}
Response:
{
"success": true,
"data": {
"id": 1,
"name": "Pizza A0LhV",
"detail": "Ex ad nisi aliqua qui ea sunt aliqua eu velit adipisicing. Voluptate minim duis Lorem cupidatat elit. Magna aliquip sunt tempor ea in consectetur nostrud occaecat sit duis aliqua est commodo. Occaecat occaecat esse nulla voluptate sit. Dolore minim in culpa culpa. Deserunt qui pariatur Lorem consectetur magna tempor tempor dolor. Exercitation commodo velit velit non tempor.",
"price_in_usd": "32.48",
"stock": null,
"image": "https://images.pexels.com/photos/803290/pexels-photo-803290.jpeg?auto=compress&cs=tinysrgb&dpr=3&h=750&w=1260",
"created_at": "16/05/2020",
"updated_at": "16/05/2020"
},
"message": "Product retrieved successfully."
}
GET http://localhost:8000/api/carts/{id}
Response:
{
"success": true,
"data": {
"id": 6,
"user_id": 1,
"cart_items": [
{
"id": 1,
"cart_id": 6,
"product": {
"id": 2,
"name": "Pizza VvUwr",
"price_in_usd": "25.14",
"detail": "Ex ad nisi aliqua qui ea sunt aliqua eu velit adipisicing. Voluptate minim duis Lorem cupidatat elit. Magna aliquip sunt tempor ea in consectetur nostrud occaecat sit duis aliqua est commodo. Occaecat occaecat esse nulla voluptate sit. Dolore minim in culpa culpa. Deserunt qui pariatur Lorem consectetur magna tempor tempor dolor. Exercitation commodo velit velit non tempor.",
"created_at": "2020-05-16 02:26:17",
"updated_at": "2020-05-16 02:26:17",
"image": "https://images.pexels.com/photos/803290/pexels-photo-803290.jpeg?auto=compress&cs=tinysrgb&dpr=3&h=750&w=1260"
},
"total": 1,
"total_price_in_usd": "25.14",
"created_at": "16/05/2020",
"updated_at": "16/05/2020"
}
],
"total_price": 25.14,
"total_items": "1",
"created_at": "16/05/2020",
"updated_at": "16/05/2020"
},
"message": "Cart retrieved successfully."
}
POST http://localhost:8000/api/cart_items
Request Body:
{
"user_id": 2,
"cart_id": null, // this can be cart_id if user previously has been add to cart before
"product_id": 1,
"total": 1,
"total_price_in_usd": 10.14
}
Response:
{
"success": true,
"data": {
"id": 3,
"cart_id": 8,
"product": {
"id": 1,
"name": "Pizza A0LhV",
"price_in_usd": "32.48",
"detail": "Ex ad nisi aliqua qui ea sunt aliqua eu velit adipisicing. Voluptate minim duis Lorem cupidatat elit. Magna aliquip sunt tempor ea in consectetur nostrud occaecat sit duis aliqua est commodo. Occaecat occaecat esse nulla voluptate sit. Dolore minim in culpa culpa. Deserunt qui pariatur Lorem consectetur magna tempor tempor dolor. Exercitation commodo velit velit non tempor.",
"created_at": "2020-05-16 02:26:17",
"updated_at": "2020-05-16 02:26:17",
"image": "https://images.pexels.com/photos/803290/pexels-photo-803290.jpeg?auto=compress&cs=tinysrgb&dpr=3&h=750&w=1260"
},
"total": 1,
"total_price_in_usd": 10.14,
"created_at": "16/05/2020",
"updated_at": "16/05/2020"
},
"message": "Successfully added to cart."
}
DELETE http://localhost:8000/api/cart_items/{id
Response:
{
"success": true,
"data": [],
"message": "CartItem deleted successfully."
}
POST http://localhost:8000/api/orders
Request Body:
{
"user_id": 2,
"cart_id": 8,
"address": "Nisi esse nulla dolore excepteur nisi aute aliquip est officia voluptate.",
"delivery_cost_in_usd": 10.02,
"final_price_in_usd": 23.12,
"status": "completed" // hardcoded for now
}
Response:
{
"success": true,
"data": {
"id": 2,
"user_id": 2,
"items": [],
"delivery_cost_in_usd": 10.02,
"final_price_in_usd": 23.12,
"total_items": 0,
"status": "completed",
"created_at": "16/05/2020",
"updated_at": "16/05/2020"
},
"message": "Order created successfully."
}
GET http://localhost:8000/api/orders
Response:
{
"success": true,
"data": {
"id": 2,
"user_id": 2,
"items": [
{
"id": 1,
"cart_id": 6,
"product": {
"id": 2,
"name": "Pizza VvUwr",
"price_in_usd": "25.14",
"detail": "Ex ad nisi aliqua qui ea sunt aliqua eu velit adipisicing. Voluptate minim duis Lorem cupidatat elit. Magna aliquip sunt tempor ea in consectetur nostrud occaecat sit duis aliqua est commodo. Occaecat occaecat esse nulla voluptate sit. Dolore minim in culpa culpa. Deserunt qui pariatur Lorem consectetur magna tempor tempor dolor. Exercitation commodo velit velit non tempor.",
"created_at": "2020-05-16 02:26:17",
"updated_at": "2020-05-16 02:26:17",
"image": "https://images.pexels.com/photos/803290/pexels-photo-803290.jpeg?auto=compress&cs=tinysrgb&dpr=3&h=750&w=1260"
},
"total": 1,
"total_price_in_usd": "25.14",
"created_at": "16/05/2020",
"updated_at": "16/05/2020"
}
],
"delivery_cost_in_usd": 10.02,
"final_price_in_usd": 23.12,
"total_items": 0,
"status": "completed",
"created_at": "16/05/2020",
"updated_at": "16/05/2020"
},
"message": "Order created successfully."
}