FastAPI

FastAPI — современный, быстрый (высокопроизводительный) веб-фреймворк для создания API с Python 3.8+ на основе стандартных type hints Python

FastAPI Logo

Обзор

FastAPI разработан для создания API с автоматической интерактивной документацией, высокой производительностью и простыми в использовании возможностями

Основные возможности

Высокая производительность

FastAPI — один из самых быстрых фреймворков Python, сравнимый с NodeJS и Go

Автоматическая документация API

Автоматически генерируемая интерактивная документация API

from fastapi import FastAPI

app = FastAPI()

@app.get("/items/{item_id}")
async def read_item(item_id: int):
    return {"item_id": item_id}

Документация доступна на /docs (Swagger UI) и /redoc

Type Hints

Полная поддержка type hints

from fastapi import FastAPI
from pydantic import BaseModel

class Item(BaseModel):
    name: str
    price: float
    is_offer: bool = False

@app.post("/items/")
async def create_item(item: Item):
    return item

Поддержка Async/Await

Нативная поддержка async

@app.get("/")
async def read_root():
    return {"Hello": "World"}

@app.get("/items/{item_id}")
async def read_item(item_id: int, q: str = None):
    return {"item_id": item_id, "q": q}

Валидация данных

Автоматическая валидация запросов с использованием Pydantic

from pydantic import BaseModel, EmailStr

class User(BaseModel):
    email: EmailStr
    age: int
    name: str

Установка

pip install fastapi uvicorn

Запуск

uvicorn main:app --reload

Типичные случаи использования

Преимущества

Недостатки

Официальная документация

Документация FastAPI

Информация о версии