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

FastAPI文档无法显示HTTP/HTTPS协议选择,该如何解决?

解决方案

问题根源是OpenAPI 3.x版本已废弃schemes字段,改用servers字段来定义不同协议/环境的服务地址。你需要修改自定义OpenAPI配置,添加servers数组来指定不同协议的完整服务端点:

from fastapi.openapi.utils import get_openapi

def custom_openapi():
    if app.openapi_schema:
        return app.openapi_schema
    openapi_schema = get_openapi(
        title="My FastAPI App",
        version="1.0.0",
        description="This is a FastAPI app that supports HTTP and HTTPS",
        routes=app.routes,
    )
    # 定义HTTP和HTTPS服务端点,替换原有的schemes配置
    openapi_schema["servers"] = [
        {"url": "http://localhost:8000", "description": "HTTP开发环境"},
        {"url": "https://your-production-domain.com", "description": "HTTPS生产环境"}
    ]
    app.openapi_schema = openapi_schema
    return app.openapi_schema

app.openapi = custom_openapi

关键说明:

  • servers数组中的每个对象必须包含url(完整服务地址,包含协议、域名/IP、端口),可选添加description用于说明该服务的用途
  • 配置完成后,FastAPI默认的SwaggerUI文档左上角会自动出现下拉列表,展示你定义的所有服务选项(包含不同协议的地址)
  • CORS配置仅用于控制跨域请求权限,和文档中的协议选择功能无关,之前的CORS配置可以保留但无需修改

内容的提问来源于stack exchange,提问作者Om Soni

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 11:17:03