REST-архитектура и отправка данных на сервер #
REST-архитектура #
Презентацию по теме можно посмотреть по ссылке.
Видео-запись: Rutube
Отправка данных на сервер #
Презентацию по теме можно посмотреть по ссылке.
Видео-запись: Rutube
Задание № 1. Использование POST-запроса для создания треугольника #
Измените тип запроса на создание треугольника по пути /v1/triangles/new-one
с
GET на POST. Выполните POST-запрос по данному пути и убедитесь, что приложение
его обработало. Новый треугольник должен появиться в списке треугольников.
Выполните GET-запрос по данному пути. Приложение должно ответить кодом 404 на обращение к несуществующему маршруту, новый треугольник не должен был создан.
Задание № 2. Передача параметров по созданию пользователя в теле #
Реализуйте обработчик по добавлению нового пользователя по пути /v2/user
.
На данный адрес клиент должен высылать POST-запрос с данными в формате
application/x-www-form-urlencoded
. Должны передаваться 2 параметра:
Login
, уникальное имя пользователя, не может быть пустым.Email
, электронная почта пользователя, не может быть пустой.
Если были переданы не все требующиеся поля или хотя бы одно из полей передано не корректно, то приложение должно вернуть ответ с кодом 400 и JSON-документом, в котором описаны ошибки для каждого из полей.
В случае отсутствия необходимых полей необходимо вернуть JSON-документ следующей структуры
{
"Login":{
"Value":"",
"Error":"Ожидается непустая строка"
},
"Email":{
"Value":"",
"Error":"Ожидается непустая строка"
}
}
Если данные были переданы верно, но пользователь с таким именем учётной записи (Login) уже существует, то приложение должно вернуть ответ с кодом 409.
Если данные верны и нет логических проблем, то приложение должно создать новую учётную запись, заполнив оставшиеся поля уникального идентификатора и даты и времени регистрации корректными значениями.
В качестве успешного ответа приложение должно вернуть код 201, в качестве тела необходимо вернуть JSON-документ, который содержит идентификатор созданного пользователя
{
"Id":"de42a00f-7f43-4d10-808d-bee47fdeef49"
}