git clone git@github.com:Stakulik/json_api_on_rack.git
cd json_api_on_rack
bundle install
- запускаем
bundle exec rackup bin/config.ru
, для запуска на своем порту добавляем-p 1234
- работаем с
localhost:9292
, 9292 - порт по умолчанию
bundle exec rspec
Реализовать JSON API, используя для роутинга только rack. Хранилище данных на свое усмотрение (в памяти, в файловой системе, в редисе, в постгресе, ...). Приложение должно отвечать на 3 запроса:
- POST /users Принимает json вида:
{
"email": "john@example.com"
}
email обязателен, проверяется на формат и уникальность. Ошибка возвращается с соответствующим кодом (email_missing, email_already_exists, wrong_email_format)
Возвращает:
{
"data": {
"id": "2ea550bc-705c-4702-b6d0-831919a33e5c",
"email": "john@example.com"
}
}
- GET /users Возвращает список созданных пользователей:
{
"data": [
{
"id": "2ea550bc-705c-4702-b6d0-831919a33e5c",
"email": "john@example.com"
}
]
}
- GET /users/:id Возвращает пользователя по id:
{
"data": {
"id": "2ea550bc-705c-4702-b6d0-831919a33e5c",
"email": "john@example.com"
}
}
- На все остальные запросы возвращается 404 с кодом not_found