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"
}