Об этом проекте
Этот репозиторий — курируемый список лучших практик и соглашений FastAPI, основанный на опыте продакшена в стартапах. Это не библиотека и не фреймворк, а документационный ресурс с примерами кода и архитектурными рекомендациями.
Основные рассматриваемые темы:
- Структура проекта: доменная компоновка, вдохновлённая Netflix Dispatch, где каждый модуль содержит собственные router, schemas, models, services, dependencies, constants, config, utils и exceptions.
- Асинхронные маршруты: рекомендации по обработке I/O-интенсивных и CPU-интенсивных задач, объяснение того, как FastAPI выполняет синхронные маршруты в пуле потоков и почему блокирующие операции в асинхронных маршрутах могут остановить event loop.
- Использование Pydantic: широкое применение Pydantic для валидации, создание собственной глобальной базовой модели для единообразной сериализации datetime и разделение BaseSettings по модулям.
- Зависимости: использование зависимостей FastAPI не только для внедрения, но и для валидации запросов, объединение зависимостей в цепочки, использование кэширования на уровне запроса и предпочтение асинхронных зависимостей.
- Прочие практики: следование соглашениям REST, понимание поведения сериализации ответов FastAPI, запуск синхронных SDK в пулах потоков, выбор между BackgroundTasks и настоящими очередями задач, обработка преобразования ValueError в ValidationError, скрытие документации по умолчанию, задание соглашений об именовании в базе данных, использование миграций Alembic и внедрение ruff.
Репозиторий также включает файл AGENTS.md с теми же правилами в машиночитаемом формате для ИИ-агентов, содержащий матрицу версий, блоки «Do/Don't» и чек-лист анти-паттернов. Доступен перевод README на упрощённый китайский язык.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.