Pydantic:根据需要指定值,但输入示例值

问题描述 投票:0回答:1

我正在FastAPI中使用Pydantic,以在OpenAPI文档中进行定义。意识到要根据需要定义一个值,我需要将这些值保留为空,如下所示。

class Item(BaseModel):
    name: str
    description: str
    price: float
    tax: float

但是,我想提供一个带有示例值的JSON,我可以使用以下语法创建它。

class Item(BaseModel):
    name: str = "my name"
    description: str = "my description"
    price: float = 0.234
    tax: float = 0.20

但是这将使它们成为OpenAPI文档中不需要的。有什么方法可以根据需要指定它们,并提供示例值?

python-3.x fastapi pydantic
1个回答
0
投票

基于文档Schema Extra - Example

您可以这样为Config.schema_extra声明额外的BaseModel

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
            }
        }

或使用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)
© www.soinside.com 2019 - 2024. All rights reserved.