Назад в блог
Инженерия
1 мин чтения
PythonFastAPI

Как я структурирую крупные проекты на FastAPI

Роутеры, сервисы, репозитории и правила, которые не дают кодовой базе FastAPI превратиться в кашу по мере роста.

Любой проект на FastAPI начинается чистым. Потом он растёт. Первый признак беды это файл роутера на пятьсот строк с запросами к базе прямо внутри обработчика.

Структура, к которой я пришёл, состоит из трёх слоёв: роутеры (только HTTP), сервисы (бизнес-логика) и репозитории (доступ к данным). Каждый возвращает слою выше хорошо типизированные объекты, и сырые строки ORM наверх не просачиваются.

Правило, которое заставляет это работать, это внедрение зависимостей через Depends. Сессия передаётся в репозиторий, репозиторий в сервис, сервис в роутер. Ничего глобального.

Поделиться:Поделиться в Telegram
Ещё статьи