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

如何配置Swagger的servers属性实现同域名API版本可选?

解决方案

在OpenAPI 3.0+规范中,basePath已被servers属性替代,正好适配你的版本切换需求。通过相对路径配置多个server条目,就能实现同域名下的API版本选择,同时默认选中最新的v2版本。

具体YAML配置示例

openapi: 3.0.3
info:
  title: 你的API文档标题
  version: 2.0.0
# 核心servers配置
servers:
  - url: /v2
    description: 最新版本API(默认)
    default: true
  - url: /v1
    description: 旧版本API
# 后续是你的API路径定义
paths:
  /users:
    get:
      summary: 获取用户列表
      responses:
        '200':
          description: 成功返回用户列表

配置细节说明

  • 相对路径url: /v2:由于Swagger UI与API部署在同一域名,使用相对路径会自动继承当前页面的scheme(如https)和host(如their_company_subdomain.myapp.com),完全满足你“复用相同SCHEME和HOST”的要求。
  • default: true:标记v2为默认选中版本,打开Swagger页面时会自动使用该basePath发起请求。
  • 自动生成下拉框:Swagger UI会将servers数组中的每个条目渲染为下拉选项,用户切换版本后,「Try it out」功能会自动使用对应版本的basePath发送请求。

注意事项

  • 确保你的OpenAPI版本为3.0及以上,servers属性是3.0版本才引入的,2.0版本不支持该配置。
  • API路径定义需基于相对根路径(如/users),不要包含版本前缀,版本前缀已通过servers的url参数统一指定。

内容的提问来源于stack exchange,提问作者Marius Mitrofan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 07:15:52