这是继续这个问题。
我添加了一个模型来获取 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
Run Code Online (Sandbox Code Playgroud)
它按预期工作,但描述(在模型中添加)没有反映在 swagger ui 中
但是如果请求正文使用相同的模型,那么描述会以swagger的形式显示
我是否缺少任何内容来获取 swagger ui 中 QueryParams(model) 的描述?
San*_*rde 13
这对我有用
from fastapi import Depends, FastAPI, Query
@app.post("/route")
def some_api(
self,
query_param_1: float = Query(None, description="description goes here", ),
query_param_2: float = Query(None, description="Param 2 does xyz"),
):
return "hello world"
Run Code Online (Sandbox Code Playgroud)
这对于 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 paramsRun Code Online (Sandbox Code Playgroud)
因此,您将拥有该文档,
| 归档时间: |
|
| 查看次数: |
1832 次 |
| 最近记录: |