如何解决使用Pydantic模型FastAPI在swagger文档中设置查询参数的描述 参考文献
这是question的继续。
我已经添加了一个模型,以将查询参数添加到pydantic模型中
class QueryParams(BaseModel):
x: str = Field(description="query x")
y: str = Field(description="query y")
z: str = Field(description="query z")
@app.get("/test-query-url/{test_id}")
async def get_by_query(test_id: int,query_params: QueryParams = Depends()):
print(test_id)
print(query_params.dict(by_alias=True))
return True
它可以按预期工作,但说明(模型中添加了)未在swagger ui中反映
但是如果将相同的模型用于请求正文,则说明会以粗体显示
我是否缺少任何东西来获取swagger ui中QueryParams(模型)的描述?
解决方法
这不适用于Pydantic模型
要获得所需结果的解决方法是使用 自定义依赖项类(或函数) ,而不是使用Pydantic模型
from fastapi import Depends,FastAPI,Query
app = FastAPI()
class CustomQueryParams:
def __init__(
self,foo: str = Query(...,description="Cool Description for foo"),bar: str = Query(...,description="Cool Description for bar"),):
self.foo = foo
self.bar = bar
@app.get("/test-query/")
async def get_by_query(params: CustomQueryParams = Depends()):
return params
因此,您将拥有文档,
参考文献
- Validate GET parameters in FastAPI--(FastAPI GitHub)似乎对扩展Pydantic模型来验证GET参数的兴趣减少了
- Classes as Dependencies--(FastAPI Doc)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。