Реализуйте создание новой записи в справочнике. Точкой входа будет маршрут POST на /users.json. Данные:
{
"name": "<name>",
"phone": "<phone>"
}
На стороне сервера необходимо проверять корректность данных (валидировать).
Пример запроса:
$ curl -XPOST \
> -H 'Content-Type: application/json' \
> --data '{"name":"Bob","phone":"912-114-23-22"}' \
> localhost:4000/users.json
{"meta":{"location":"/users/10.json"},"data":{"name":"Bob","phone":"912-114-23-22","id":10}}
В случае успеха должен быть возвращен код ответа 201 (created) и тело:
{
"meta": {
"location": "/users/10.json"
},
"data": {
"name": "Bob",
"phone": "912-114-23-22",
"id": 10
}
}
location - адрес по которому можно получить данные этой записи id - генерируется с помощью функции nextId и проставляется в запись перед добавлением в общий список В случае ошибок валидации должен быть возвращен код ответа 422 (unprocessable entity) и тело:
{
"errors": [
{
"source": "name",
"title" :"bad format"
},
{
"source": "phone",
"title" :"can't be blank"
}
]
}
Количество ошибок и их тип зависит от пришедших данных.
Реализуйте функцию для валидации данных, пришедших из формы, по следующим правилам:
Имя не может быть пустым Имя должно соответствовать шаблону ^[\w.]+$ Телефон не может быть пустым Функция должна возвращать пустой массив в случае отсутствия ошибок и массив с ошибками в случае их наличия. Каждый элемент массива – это объект следующей структуры:
{
source: <field-name>,
title: <message>,
}
Виды сообщений:
Если поле пустое: can't be blank Если формат не соответствует нужному: bad format
Кроме запуска тестов, обязательно попробуйте "поиграть" с написанным сервером. Для этого воспользуйтесь командой make start, которая запускает ваш сервер. После этого вы можете делать к нему запросы, используя, например, curl: curl localhost:8080. В данном уроке сервер перезапускается автоматически.