Estoy usando Pydantic en FastAPI, para definir en un documento de OpenAPI. Me di cuenta de que para definir un valor según sea necesario, necesito mantener los valores vacíos, como se muestra a continuación.
class Item(BaseModel): name: str description: str price: float tax: floatSin embargo, quería dar un JSON con valores de ejemplo, que puedo crear con la siguiente sintaxis.
class Item(BaseModel): name: str = "my name" description: str = "my description" price: float = 0.234 tax: float = 0.20Pero esto hará que no se requieran en los documentos de OpenAPI. ¿Hay alguna forma en la que pueda especificarlos según sea necesario y, sin embargo, dar un valor de ejemplo?
Basado en documentos Schema Extra - Ejemplo :
Puede declarar Config.schema_extra adicional para su BaseModel como tal:
class Item(BaseModel): name: str description: str price: float tax: float class Config: schema_extra = { "example": { "name": "my name", "description": "my description", "price": 0.234, "tax": 0.20 } } O declarar explícitamente con pydantic.Field :
from pydantic import BaseModel, Field class Item(BaseModel): name: str = Field(..., example="my name") description: str = Field(..., example="my description") price: float = Field(..., example=0.234) tax: float = Field(..., example=0.20)