1 мин чтения
PythonFastAPI
Как я структурирую крупные проекты на FastAPI
Роутеры, сервисы, репозитории и правила, которые не дают кодовой базе FastAPI превратиться в кашу по мере роста.
Любой проект на FastAPI начинается чистым. Потом он растёт. Первый признак беды это файл роутера на пятьсот строк с запросами к базе прямо внутри обработчика.
Структура, к которой я пришёл, состоит из трёх слоёв: роутеры (только HTTP), сервисы (бизнес-логика) и репозитории (доступ к данным). Каждый возвращает слою выше хорошо типизированные объекты, и сырые строки ORM наверх не просачиваются.
Правило, которое заставляет это работать, это внедрение зависимостей через Depends. Сессия передаётся в репозиторий, репозиторий в сервис, сервис в роутер. Ничего глобального.
Поделиться:Поделиться в Telegram