Ответ
Для добавления примеров данных для моделей Pydantic, которые будут отображаться в интерактивной документации FastAPI (Swagger UI), используется вложенный класс Config с атрибутом schema_extra.
Это позволяет наглядно продемонстрировать ожидаемую структуру JSON для запросов и ответов, что значительно упрощает тестирование и интеграцию API для других разработчиков.
Пример:
from fastapi import FastAPI
from pydantic import BaseModel, Field
app = FastAPI()
class Item(BaseModel):
name: str = Field(..., description="Название товара")
price: float = Field(..., description="Цена товара")
class Config:
# Словарь в schema_extra будет использован как пример в OpenAPI схеме
schema_extra = {
"example": {
"name": "My Awesome Item",
"price": 99.99
}
}
@app.post("/items/")
async def create_item(item: Item):
return item
В сгенерированной документации /docs для эндпоинта /items/ в разделе Request body будет отображаться указанный пример, а также описания полей из Field.