Об этом проекте

Этот репозиторий — курируемый список лучших практик и соглашений 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 на упрощённый китайский язык.