Swagger OpenAPI 3.0是否允许引用服务器变量?

Swagger OpenAPI 3.0是否允许引用服务器变量?,swagger,openapi,Swagger,Openapi,假设我的OpenAPI定义有两个服务器。两者共享相同的变量。因此,我想引用这些变量以防止代码重复 实际上,我将OpenAPI拆分为文件,并将其与swagger cli bundle相结合。 这就是它所创造的: openapi:3.0.2 信息: 标题:我的API 描述:“一些描述” 版本:1.0.0 服务器: -网址:'https://stage-api.domain.com/foo/{v1}/{v2}/{v3}' 描述:为QA准备API服务器 变量: v1: 描述:“变量1” 默认值:“某物”

假设我的OpenAPI定义有两个服务器。两者共享相同的变量。因此,我想引用这些变量以防止代码重复

实际上,我将OpenAPI拆分为文件,并将其与
swagger cli bundle
相结合。 这就是它所创造的:

openapi:3.0.2
信息:
标题:我的API
描述:“一些描述”
版本:1.0.0
服务器:
-网址:'https://stage-api.domain.com/foo/{v1}/{v2}/{v3}'
描述:为QA准备API服务器
变量:
v1:
描述:“变量1”
默认值:“某物”
枚举:
-“foo1”
-“foo2”
v2:
说明:“变量2”
默认值:“某物”
枚举:
-“foo1”
-“foo2”
v3:
描述:“变量3”
默认值:“某物”
枚举:
-“foo1”
-“foo2”
-网址:'https://api.domain.com/foo/{v1}/{v2}/{v3}'
描述:生产API服务器
变量:
地区:
$ref:“#/servers/0/variables/v1”
品牌:
$ref:“#/servers/0/variables/v2”
区域设置:
$ref:“#/servers/0/variables/v3”
路径:{}
尝试在Swagger Editor中验证此操作时,会出现以下错误:

servers.1.variables.v1上的结构错误不应包含 其他属性additionalProperty:$ref跳转到第xx行

servers.1.variables.v1上的结构错误应该是必需的 属性“default”缺少属性:默认跳转到第xx行

是否可以引用服务器变量或以其他方式重用它们


当然,我可以运行
swagger cli bundle-r
,但我想阻止使用它。

不,这是不受支持的。您可以在

在您的示例中,除了子域之外,服务器路径几乎相同,因此您可以使用单个服务器定义并将子域设为变量:

服务器:
-url:'https://{env}.domain.com/foo/{v1}/{v2}/{v3}'
变量:
环境:
描述:环境-暂存或生产
默认值:stageapi
枚举:
-阶段api
-原料药
#其他变量
# ...