Требуется написать простой апи при помощи FastAPI
, подключенный к Postgresql
БД.
Условия:
- В базе данных должна быть таблица
user
с произвольными столбцами; - Описание и работа с БД при помощи
SQLalchemy
; - В апи должно быть три эндпоинта -
get_user
,сreate_user
,update_user
; - Изменять поля юзера может только он сам (нужна авторизация);
- Результат
get_user
должен кешироваться; - При измении полей юзера кеш должен сбрасываться (во всех воркерах);
- Докерфайл или иной способ развернуть проект и проверить работу апи;
- Покрытие тестами;
- Asyncio;
- PEP-8.
Приветствуются любые дополнительные фичи с применением знакомых технологий на свой вкус.
Это могут быть, например, другие связанные таблицы БД cо сложными запросами к ним,
публикация сообщений о регистрации юзера в брокер сообщений,
выполнение отложенных задач при помощи Сelery
и т.д.
api
- содержит эндпоинты, обрабатывающие запросыclients
- клиенты для работы с внешними системами (в данном случае системы хранения данных)config
- конфигурационные файлыmodels
- модели для работы со структурами данных (используются и как доменные модели, и как модели для БД PostgreSQL, и как REST модели)services
- сервисы для работы с БД PostgreSQL
services
- различные сервисы, такие как: хранящие в себе бизнес-логику (UserService
), вспомогательные сервисы (HasherService
,CachingService
)tests
- тестыutils
- небольшие вспомогательные функции для определённых задач, которые не удалось поместить в какой-то сервис
docker-compose up