具有合理默认值的必填字段
Required field with sensible default
考虑以下因素
from pydantic import BaseModel, Field
class Model(BaseModel):
required: str
这将使 required
成为 Model
的必填字段,但是,在 FastAPI 自动生成的 Swagger 文档中,它的示例值为 "string"。
如何使必填字段具有合理的默认值?如果我做一个像
这样的模型
from pydantic import BaseModel, Field
class Model(BaseModel):
required: str = 'Sensible default'
然后字段 required
不再是必需的,但它在文档中显示为合理的默认值。有没有简单的解决方法?
我没有研究 为什么 FastAPI 附带的 openapi 版本中的(pydantic)模型表示没有星号,但该字段是 definitely 仍然需要(尝试输入空值或字符串以外的任何值)。这可能只是 UI 不一致。
您可以使用 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() 可以验证多种不同的参数。
考虑以下因素
from pydantic import BaseModel, Field
class Model(BaseModel):
required: str
这将使 required
成为 Model
的必填字段,但是,在 FastAPI 自动生成的 Swagger 文档中,它的示例值为 "string"。
如何使必填字段具有合理的默认值?如果我做一个像
这样的模型from pydantic import BaseModel, Field
class Model(BaseModel):
required: str = 'Sensible default'
然后字段 required
不再是必需的,但它在文档中显示为合理的默认值。有没有简单的解决方法?
我没有研究 为什么 FastAPI 附带的 openapi 版本中的(pydantic)模型表示没有星号,但该字段是 definitely 仍然需要(尝试输入空值或字符串以外的任何值)。这可能只是 UI 不一致。
您可以使用 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() 可以验证多种不同的参数。