FastAPI:如何在文档中展示多个请求示例并保留默认示例
解决方案
当你在Body参数中显式定义examples时,FastAPI会覆盖自动生成的默认示例。要保留默认示例并将其置于列表顶部,无需手动编写默认示例内容,只需通过代码自动生成模型的默认示例,并将其作为第一个条目加入examples字典即可。
修改后的完整代码:
from fastapi import FastAPI, Body from pydantic import BaseModel import uvicorn class HelloWorld(BaseModel): hello: str world: str = "World" app = FastAPI() @app.post("/") def post_root( hwr: HelloWorld = Body( ..., examples={ "default": { "summary": "默认示例", # 自动生成与FastAPI默认一致的示例内容 "value": HelloWorld(hello="string").dict() }, "denmark": {"summary": "丹麦示例", "value": {"hello": "denmark"}}, "sweden": {"summary": "瑞典示例", "value": {"hello": "sweden"}}, } ) ): return {"Hello": "World"} if __name__ == "__main__": uvicorn.run(app=app, host="0.0.0.0", port=5085)
关键说明
- 通过
HelloWorld(hello="string").dict()自动生成默认示例内容:hello字段使用FastAPI默认的占位符值"string",world字段自动调用模型定义的默认值"World",和原生自动生成的示例完全一致。 - Python 3.7及以上版本的字典默认保持插入顺序,因此
"default"条目会排在示例列表的最顶部。
内容的提问来源于stack exchange,提问作者576i
相关产品推荐
相关产品推荐

