Реализовать эндпоинт для управления ролями у пользователя
Closed this issue · 3 comments
Что нужно сделать
Необходимо реализовать эндпоинт по следующему пути:
/api/v1/users/{id}/roles
Как нужно сделать
Роутер может принимать запросы:
GET
- для просмотра ролей пользователя;
POST
- для назначения роли пользователю;
DELETE
- для отзыва роли у пользователя.
Запрос POST
должен содержать в теле запроса:
{
"role_id": string,
}
Запрос DELETE
должен содержать в теле запроса:
{
"role_id": string,
}
Сервис должен валидировать тело запроса в случае. Если его нет или же оно не прошло валидацию, должно выходить информативное сообщение и возвращаться код ошибки 400 Bad Request
.
При передаче в теле запроса полей id
, сервис должен выполнять его поиск в базе данных. В случае ошибки, возвращать сообщение, что такой id
не найден и код ошибки 404 Not Found
.
При запросе информации о ролях пользователя ответ должен быть вида:
{
"roles": [Role],
}
Код должен быть покрыт юнит-тестами, которые имитируют все описываемые запросы.
Ожидаемый результат
При успешном выполнении GET
запроса:
- Информация о ролях пользователя
Код 200 ОК
При успешном выполнении 'POST', 'DELETE' запросов:
Код 200 ОК
В ином случае:
- Информативное сообщение об ошибке
- Код ошибки
Ответ с ролями скорее должен быть таким, как мне кажется?
"roles": [string, string]
Ответ с ролями скорее должен быть таким, как мне кажется?
"roles": [string, string]
Я подумала еще, что лучше будет тут указать объект Role.
По аналогии с выводом данных в аpi кинотеатра.
Как считаешь?
GET /api/v1/users/{id}/roles по идее должен возвращать список из объектов Role