Ответ
FastAPI имеет богатую экосистему библиотек, которые расширяют его функциональность. Их можно сгруппировать по задачам:
-
Валидация данных:
Pydantic: Является ядром FastAPI, используется для валидации, сериализации/десериализации данных и автоматической генерации OpenAPI-схем.
-
Серверы (ASGI):
Uvicorn: Рекомендуемый высокопроизводительный ASGI-сервер для запуска FastAPI в production.Hypercorn: Альтернативный ASGI-сервер с поддержкой HTTP/2 и HTTP/3.
-
Базы данных и ORM:
SQLAlchemy: Самая популярная ORM для работы с реляционными БД. Используется вместе с драйверами вродеpsycopg2-binary(для PostgreSQL).Alembic: Инструмент для миграций схем баз данных, тесно интегрированный с SQLAlchemy.SQLModel: Библиотека от автора FastAPI, объединяющая Pydantic и SQLAlchemy для упрощения работы с моделями.Tortoise-ORM: Асинхронная ORM, вдохновленная Django ORM.
-
Аутентификация и безопасность:
python-joseиPyJWT: Для кодирования и декодирования JSON Web Tokens (JWT).passlibиbcrypt: Для безопасного хеширования и верификации паролей.
-
Тестирование:
pytest: Стандарт де-факто для тестирования в Python.httpx: Современный асинхронный HTTP-клиент, идеально подходящий для отправки запросов к приложению FastAPI внутри тестов.
-
Фоновые задачи:
Celery: Популярный фреймворк для выполнения отложенных и периодических задач.
-
Шаблонизация:
Jinja2: Используется, если приложению нужно рендерить HTML-страницы на стороне сервера.