Урок 1. Реализовали ручки приложения с фейковой базой и сериализаторами. Урок 2. Провели рефакторинг. Разложили сериализаторы и ручки по отдельным пакетам. Подключили настоящую БД в Докере и создали модели. Урок 3. Провели рефакторинг.
Написали по одному тесту к ручкам.
Настроили pytest и фикстуры. Пример почти идеальной настройки фикстур для работы с БД.
ОШИБКА C ТЕСТАМИ БЫЛА ВЫЗВАНА ОДНОВЛЕНИЕМ БИБЛИОТЕКИ pytest_asyncio https://pytest-asyncio.readthedocs.io/en/latest/how-to-guides/migrate_from_0_21.html#how-to-guides-migrate-from-0-21
Добавили .env файл и модуль settings для хранения переменных окружения и их легкого использования.
Урок 4. Провели рефакторинг. Добавили сервисный слой.
Для удобства и соблюдения принципов чистой архитектуры проект разделен на следующие пакеты:
-
configurations— слой для хранения конфигураций, констант, параметров и настроек проекта. -
models— слой для хранения моделей (ORM или Data Classes). -
routers— слой для настроек урлов для различных эндпоинтов. -
schemas— слой содержащий схемы pydantic, отвечает за сериализацию и валидацию. -
services— слой содержащий бизнес-логику и работу с ORM.