gpt4 book ai didi

python - 使用 Pydantic 模型 (FastAPI) 在 swagger 文档中设置查询参数的描述

转载 作者:行者123 更新时间:2023-12-04 12:16:11 34 4
gpt4 key购买 nike

这是继续这个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
它按预期工作,但描述(在模型中添加)没有反射(reflect)在 swagger ui 中
enter image description here
但是如果请求正文使用相同的模型,那么描述会以swagger的形式显示
enter image description here
我是否缺少任何内容来获取 swagger ui 中 QueryParams(model) 的描述?

最佳答案

这对于 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
因此,您将拥有该文档,
screenshot

引用
  • Validate GET parameters in FastAPI--(FastAPI GitHub)似乎对扩展 Pydantic 模型以验证 GET 参数的兴趣不大
  • Classes as Dependencies--(FastAPI Doc)
  • 关于python - 使用 Pydantic 模型 (FastAPI) 在 swagger 文档中设置查询参数的描述,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64364499/

    34 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com