Добрый день!
Спасибо за интерес к вакансии Ruby-разработчика. В рамках тестового задания вам предлагается разработать небольшой микросервис на Ruby с использованием любого фреймворка, такого как Rails, Hanami, Sinatra, Rack или Roda.
Напишите API-микросервис, который будет принимать данные в формате JSON и сохранять данные от пользователей. Это может быть что угодно: ФИО, емейлы, паспортные данные, документы. Микросервис должен иметь возможность обрабатывать и сохранять несколько записей.
Вам предлагается следующая детализация задания:
- Необходимо создать эндпоинт для POST-запроса, который будет принимать запросы с данными в формате JSON.
- Входящий запрос должен содержать информацию о пользователе. Структура данных может быть определена вами, но она должна соответствовать формату JSON.
- Микросервис должен валидировать полученные данные и сохранять их в базу данных. Вы можете выбрать любую базу данных, с которой предпочитаете работать.
- В случае успешного сохранения данных, микросервис должен вернуть статус 201 Created и URL на сохраненные данные.
- Для возможности вывода собранных данных, следует создать эндпоинт GET-запроса, который будет возвращать список сохраненных записей.
- Для обеспечения безопасности, вы можете добавить аутентификацию и авторизацию к микросервису (опционально).
- Опционально можно оформить приложение в Docker или Docker Compose контейнер. В таком случае проверяющий должен без проблем запустить проект у себя на системе.
- В файле README.md опишите минимальные действия для запуска.
- Результат показать на GitHub.
Пример простейшего приложения в подобном стиле — https://github.com/foxweb/qr-logger. Можно взять прямо этот же код за основу и улучшить его.
Особое внимание уделите минимализму вашего кода. Чем меньше строк, классов, файлов и гемов — тем лучше. Можете добавить минимальные тесты, Rubocop – что угодно, что вы привыкли использовать. Учтите, что это лишь примерное задание, и вы можете изменять и дорабатывать его по своему усмотрению. Главное, чтобы ваше решение демонстрировало вашу способность разрабатывать API-микросервисы на Ruby и использовать выбранный вами фреймворк. Приветствуются любые ваши оригинальные идеи и решения. Сделайте этот проект украшением и гордостью вашего GitHub-профиля :)
Удачи в выполнении задания, ожидаем вашего результата!