DIDENOK TEAM

Python Django FastAPI Flask DRF Docker

Тестовое задание

Вакансия

Backend-разработчик

Задание

Разработать менеджер паролей с поддержкой следующих методов API: GET и POST.

Каждый пароль хранится в базе данных и привязан к имени сервиса, указанному при создании.

Требования

  1. 🔐 Пароли должны храниться в зашифрованном виде
  2. 🛢 База данных — любая, но обязательно запускается как Docker-контейнер
  3. 🐳 Проект должен запускаться через docker-compose
  4. 📦 Код необходимо выложить в публичный или приватный Git-репозиторий
  5. 📄 Проект должен содержать README.md с инструкцией по запуску
  6. Единый code-style на протяжении всего проекта
  7. 🧪 Код необходимо покрыть тестами

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"
  }
]

Примечание

Всё, что не указано в задании, является опциональным, но будет плюсом.