Тестовое задание
Вакансия
Backend-разработчик
Задание
Разработать менеджер паролей с поддержкой следующих методов API: GET
и POST
.
Каждый пароль хранится в базе данных и привязан к имени сервиса, указанному при создании.
Требования
- 🔐 Пароли должны храниться в зашифрованном виде
- 🛢 База данных — любая, но обязательно запускается как Docker-контейнер
- 🐳 Проект должен запускаться через
docker-compose
- 📦 Код необходимо выложить в публичный или приватный Git-репозиторий
- 📄 Проект должен содержать
README.md
с инструкцией по запуску - ✍ Единый code-style на протяжении всего проекта
- 🧪 Код необходимо покрыть тестами
API
POST /password/{service_name}
Создаёт или заменяет пароль для сервиса.
Запрос:
POST /password/yundex HTTP/1.1
Content-Type: application/json
{
"password": "very_secret_pass"
}
Ответ:
HTTP/1.1 200 OK
Content-Type: application/json
{
"service_name": "yundex",
"password": "very_secret_pass"
}
GET /password/{service_name}
Получает пароль по точному имени сервиса.
Запрос:
GET /password/yundex HTTP/1.1
Accept: application/json
Ответ:
HTTP/1.1 200 OK
Content-Type: application/json
{
"service_name": "yundex",
"password": "very_secret_pass"
}
GET /password/?service_name={part_of_service_name}
Ищет все пароли по части имени сервиса.
Запрос:
GET /password/?service_name=yun HTTP/1.1
Accept: application/json
Ответ:
HTTP/1.1 200 OK
Content-Type: application/json
[
{
"service_name": "yundex",
"password": "very_secret_pass"
}
]
Примечание
Всё, что не указано в задании, является опциональным, но будет плюсом.