Как добавить примеры данных для моделей Pydantic в документацию FastAPI (Swagger UI)?

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

Ответ

Для добавления примеров данных для моделей 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.