FastAPI
Раздел про FastAPI: структура и конфигурация, Depends, роутинг, Pydantic v2, async, middleware, фоновые задачи, SQLAlchemy, безопасность, тесты, наблюдаемость. Примеры на Python.
Зачем для UCP. FastAPI — механика Python-биндинга UCP-сервиса, как Spring для Java: без понимания Depends, Pydantic, async, сессий и безопасности нельзя осознанно писать Handler-ы и интегрировать инфраструктуру на Python. Часть пути продукт-инженера.
Раздел разбит на 11 статей. Можно читать подряд (фундамент → конкурентность и сквозная логика → данные и безопасность → эксплуатация) или точечно.
Фундамент
- Структура приложения и конфигурация —
FastAPI(),APIRouter,lifespan,pydantic-settings, раскладка проекта. - Dependency Injection: Depends — дерево зависимостей,
yield-зависимости, переопределение в тестах. - Роутинг и обработка запросов — path operations, параметры,
response_model, статус-коды. - Pydantic: валидация и сериализация — модели v2, валидаторы, ошибки, модели запроса и ответа.
Конкурентность и сквозная логика
- Async и конкурентность —
async defvsdef, threadpool, async-клиенты, ловушки event loop. - Middleware и обработка ошибок — middleware, обработчики исключений, сквозная логика.
- Фоновые задачи и расписание —
BackgroundTasksи его границы, внешняя очередь/планировщик.
Данные и безопасность
- Персистентность: SQLAlchemy + Alembic — async-сессии, транзакции, миграции.
- Безопасность — OAuth2, JWT, зависимости-как-guards, scopes.
Эксплуатация
- Тестирование —
TestClient/httpx, pytest, фикстуры, переопределение зависимостей. - Наблюдаемость — логи, OpenTelemetry, метрики, health-checks.
Связанное
- Продукт-инженер — карта специализаций и путь.
- Use Case Pattern (обзор) — методология, которую реализует этот стек.