Какие библиотеки часто используются в экосистеме FastAPI

«Какие библиотеки часто используются в экосистеме FastAPI» — вопрос из категории Библиотеки и модули, который задают на 10% собеседований Python Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

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-страницы на стороне сервера.