- Язык:
Java
- Фреймворк:
Spring Boot
- СУБД:
PostgreSQL
- API-requests:
Postman
Method - POST.
Route - "/api/auth/register".
Запрос:
{
"username": "user",
"email": "[email protected]",
"password": "password",
"userRole": "customer"
}
Method - POST.
Route - "/api/auth/login".
Запрос:
{
"email": "[email protected]",
"password": "password"
}
Method - POST.
Route - "/api/auth/get_info".
Запрос:
{
"username": "user"
}
Method - GET.
Route - "/api/dishes/menu".
Method - POST.
Route - "/api/orders/create".
Запрос:
{
"username": "user",
"specialRequests": "some comments",
"status": "pending"
}
Method - GET.
Route - "/api/orders/{id}".
Method - POST.
Route - "/api/roles/change".
Запрос:
{
"userRole": "manager",
"username": "user"
}
Method - GET.
Route - "/api/dishes/{id}".
Method - POST.
Route - "/api/dishes/create".
Запрос:
{
"name": "Dish",
"description": "some comments",
"price": 10000,
"quantity": 10
}
Method - PUT.
Route - "/api/dishes/{id}".
Запрос:
{
"name": "UpdatedDish",
"description": "updated comments",
"price": 999.76,
"quantity": 10
}
Method - DELETE.
Route - "/api/dishes/{id}".
- По обращению к "/api/orders/get" по номеру заказа пользователю выведется информация о заказе, однако в нем не будет списка блюд. Так сделано потому что в SQL-запросе из ТЗ для создания таблицы заказов не было указано поле, хранящее в себе список блюд в заказе. В любом случае, реализовать это нетрудно. Аналогичная ситуация и для "/api/orders/create" - создать заказ можно без учета блюд.
- Для доступа у API помеченным меткой [MANAGER] или [CHEF] требуется указать в header области запроса JWT токен пользователя с соответствующей ролью.