【问题标题】:Pydantic: Specify value as required yet input example valuePydantic:根据需要指定值但输入示例值
【发布时间】:2020-06-05 12:13:56
【问题描述】:

我在 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】:

    基于文档Schema Extra - Example:

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

    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)
    

    【讨论】:

      猜你喜欢
      • 2013-05-17
      • 1970-01-01
      • 2019-02-22
      • 2021-07-26
      • 2021-02-02
      • 2021-01-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多