Тестовая задача "API по работе со списком пользователей"
Задача
- Разработать API для
- получения списка пользователей
- добавления нового пользователя
- Написать документацию к разработанному API
- Предусмотреть изменение хранилища данных учетных записей пользователей без внесения изменений в исходный код API
Реализация
Реализовано простейшее REST API на основе фреймворка Laravel
Развёртывание dev окружения
Требования
- VirtualBox
- Vagrant
- Около 2,5 ГБ места на диске
Установка
git clone git@github.com:alex-karo/test-userlist-api.git
cd test-userlist-api
vagrant up
После развёртывания приложения можно зайти по адресу
Описание API
Для получения корректного JSON необходим HTTP заголовок "Accept: application/json"
Методы
Вывести всех пользователей
Request Method: GET
Request URL: /users/
Возвращает множество пользователей в формате JSON
Вывести пользователя с заданным id
Request Method: GET
Request URL: /users/{id}/
Возвращает одного пользователя в формате JSON
В случае отсутствия пользователя с заданным id - выдаёт ошибку 404.
Добавить пользователя
Request Method: POST
Request URL: /users/
Params:
name - имя пользователя
Возвращает созданного пользователя.
В случае ошибок валидации - выдаст ошибку 400 и JSON со списком ошибок
Удалить пользователя
Request Method: DELETE
Request URL: /users/{id}/
Возвращает 204 в случае успеха.
Если пользователь не найден - выдаёт ошибку 404.
Изменить пользователя
Request Method: PUT | PATCH
Request URL: /users/{id}/
Params:
name - имя пользователя
Примеры использования
Запрос:
GET /users/
Ответ:
[
{
"id":18,
"name":"Johann",
"created_at":"2016-10-22 10:38:05",
"updated_at":"2016-10-22 10:38:05"
},
{
"id":20,
"name":"Robert');DROP TABLE users;",
"created_at":"2016-10-22 11:15:29",
"updated_at":"2016-10-22 11:15:29"
}
]
Запрос:
GET /users/18/
Ответ:
{
"id":18,
"name":"Johann",
"created_at":"2016-10-22 10:38:05",
"updated_at":"2016-10-22 10:38:05"
}