FastAPI在使用其生成的docs接口文档时,经常需要我们输入一些json参数,但实际上这些参数我们调用的时候都是默认的,比如分页数据page一般都是1,pagesize也是,而BaseModel的参数default并不能直接传递到接口文档上request_body中的json中来,很不方便。本文地址:http://www.04007.cn/article/1210.html,未经许可,不得转载.
FastApi使用的是Pydantic模型,Pydantic模型中BaseModel如果要设置默认请求数据示例。可以通过在BaseModel下定义一个class Config类,然后对其schema_extra设置example项值,这个就是request_body中的json。如下示例:本文地址:http://www.04007.cn/article/1210.html,未经许可,不得转载.
class Model(BaseModel): field: str = Field(default=...) class Config: schema_extra = { "example": { 'field': 'value', } }本文地址:http://www.04007.cn/article/1210.html,未经许可,不得转载.
虽然这个方法可行,但我并不觉得是其最好的实现方法,最方便便捷的方法应该是在生成example的时候能直接提取BaseModel中参数的default值,比如分页参数page=1; pagesize=10。直接展示这个就行了,这本身就是我们设置的参数默认值。还去设置一套schema_extra太多余了。本文地址:http://www.04007.cn/article/1210.html,未经许可,不得转载.
除此之外,我觉得BaseModel的参数还需要一个属性hidden,能实现这个参数我们虽然设置了,但是可以不在前端request_body中展示,而是用来我们在后台进行数据处理的。这个功能可以很好地解决我另一篇文章:FastApi框架怎么给BaseModel数据模型添加自定义属性 的问题。本文地址:http://www.04007.cn/article/1210.html,未经许可,不得转载.
本文地址:http://www.04007.cn/article/1210.html 未经许可,不得转载. 手机访问本页请扫描右下方二维码.
![]() |
![]() |
手机扫码直接打开本页面 |