You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 14:05:23