2

考虑以下

from pydantic import BaseModel, Field
class Model(BaseModel):
    required: str

这将为required提供一个必填字段Model,但是,在 FastAPI 自动生成的 Swagger 文档中,它将具有“字符串”的示例值。

如何使用合理的默认值创建必填字段?如果我制作一个像

from pydantic import BaseModel, Field
class Model(BaseModel):
    required: str = 'Sensible default'

然后required不再需要该字段,但它在文档中显示为合理的默认值。有一个简单的解决方法吗?

4

2 回答 2

4

您可以使用 Field() 设置这些选项并进行检查。

from pydantic import BaseModel, Field
class Model(BaseModel):
    something: str # required, shows "string"
    something: str = None # not required, shows "string"
    something: str = Field(..., example="this is the default display") # required, shows example
    something: str = Field(None, example="Foobar") #not required, show example

Field() 可以验证许多不同的参数。

于 2020-02-18T13:48:21.780 回答
2

我还没有研究为什么FastAPI附带的openapi版本中的(pydantic)模型表示会去掉星号,但该字段绝对仍然是必需的(尝试输入空值或字符串以外的任何值)。这可能只是 UI 不一致。

于 2020-01-15T19:36:19.007 回答