Ответ
FastAPI — это современный, высокопроизводительный веб-фреймворк для создания API на Python 3.7+. Его скорость сопоставима с NodeJS и Go, что достигается за счет двух ключевых компонентов:
- Starlette: Для всей веб-части. Обеспечивает поддержку асинхронности (ASGI).
- Pydantic: Для валидации и сериализации данных. Использует стандартные аннотации типов Python.
Ключевые особенности
- Высокая производительность: Один из самых быстрых фреймворков для Python благодаря асинхронности и продуманной архитектуре.
- Автоматическая документация: Генерирует интерактивную документацию API (Swagger UI и ReDoc) на основе кода и аннотаций типов.
- Валидация данных: Встроенная валидация запросов и ответов с помощью моделей Pydantic, что уменьшает количество ошибок.
- Простота и скорость разработки: Интуитивно понятный синтаксис и мощная система внедрения зависимостей (Dependency Injection) ускоряют написание кода.
Пример простого API
from fastapi import FastAPI
from pydantic import BaseModel
# Создаем модель данных с помощью Pydantic
class Item(BaseModel):
name: str
price: float
is_offer: bool | None = None
app = FastAPI()
@app.post("/items/")
async def create_item(item: Item):
return {"item_name": item.name, "price": item.price}
@app.get("/")
async def read_root():
return {"Hello": "World"}
Для запуска используется ASGI-сервер, например, Uvicorn: uvicorn main:app --reload. Документация будет доступна по адресу /docs.