FastAPI中GET请求如何用嵌套Pydantic模型生成自动文档?
FastAPI GET请求中使用Pydantic模型的问题及尝试方案
在FastAPI中,当POST请求的输入为Pydantic模型时,自动生成的文档会包含该对象的Schema。但GET请求没有请求体,无法直接将Pydantic模型作为输入。
问题
Q1:能否为自动生成的文档使用Pydantic模型?
补充:可以,答案见Chris的相关回复
Q2:能否使用嵌套Pydantic对象(将字段扁平化)实现该需求?示例代码如下:
class AnotherBase(BaseModel): c: str d: str class MyBase(BaseModel): a: str = Query() b: AnotherBase = Query() @router.get("/myget") def my_func(arg: MyBase = Depends()) -> MyBase: return MyBase(a="1", b="2")
尝试过的方案
- 直接将Pydantic模型作为GET请求输入:因GET无请求体而失败
- 使用Depends实现:部分参数被错误放入请求体中,触发FastAPI错误:
TypeError: Failed to execute 'fetch' on 'Window': Request with GET/HEAD method cannot have body. - 参考Chris的方案:内部对象
b: AnotherBase被错误放在不存在的请求体中
内容的提问来源于stack exchange,提问作者Guy
相关产品推荐
相关产品推荐

