当前位置: 首页 > 知识库问答 >
问题:

OpenAPI3.0允许引用服务器变量吗?

沈龙光
2023-03-14

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

openapi: 3.0.2
info:
  title: My API
  description: 'some description'
  version: 1.0.0
servers:
  - url: 'https://stage-api.domain.com/foo/{v1}/{v2}/{v3}'
    description: Staging API server for QA
    variables:
      v1:
        description: 'variable 1'
        default: 'something'
        enum:
          - 'foo1'
          - 'foo2'
      v2:
        description: 'variable 2'
        default: 'something'
        enum:
          - 'foo1'
          - 'foo2'
      v3:
        description: 'variable 3'
        default: 'something'
        enum:
          - 'foo1'
          - 'foo2'
  - url: 'https://api.domain.com/foo/{v1}/{v2}/{v3}'
    description: PRODUCTION API server
    variables:
      region:
        $ref: '#/servers/0/variables/v1'
      brand:
        $ref: '#/servers/0/variables/v2'
      locale:
        $ref: '#/servers/0/variables/v3'
paths: {}

是否可以引用服务器变量或以另一种方式重用它们?

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

共有1个答案

奚高扬
2023-03-14

不,不支持此操作。您可以在
https://github.com/oai/openapi-specification/isputions请求更改OpenAPI规范

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

servers:
  - url: 'https://{env}.domain.com/foo/{v1}/{v2}/{v3}'
    variables:
      env:
        description: Environment - staging or production
        default: stage-api
        enum:
          - stage-api
          - api
      # other variables
      # ...
 类似资料:
  • postgres不知道在哪里可以找到服务器配置文件。 必须指定--config-file或-d调用选项或设置PGDATA环境变量。 因此,我尝试设置配置文件: 我得到以下错误: 我搜索了这个错误消息,但找不到解决方案。 有人能对此提供一些见解吗?

  • 问题内容: 但我在编译代码时遇到此错误: 异常类型:UnboundLocalError 异常值:分配前已引用本地变量“服务器” 异常位置:/ home / amine / PFE目录/ websvc中的mysite1 / myform / Webservice.py,第43行Python可执行文件:/usr/bin/python2.7 我在此函数中添加参数之前,此代码正常工作 问题答案: 您的代码

  • 我试图在我的汇总配置中设置一个SASS结构,允许我在整个应用程序中使用变量。我想用POSTSS自动刷新器。我在插件阵列中设置了以下内容: 这很好,我可以在我的组件中导入我的SCSS文件,比如,

  • 我正在创建一个程序来提示用户输入信息,所以我创建了多个变量,然后让程序根据这些变量输出信息。出于某种原因,每当我声明新的年龄变量时,程序都会给我一个奇怪的错误,在线程“main”中说Exception。我试着将第一次扫描关闭到,但不起作用。 我的密码是

  • 我在我的机器上使用LEMP(ubuntulinux服务器,Nginx,Mysql,PHP) 我已经按照这个教程进行了设置https://www.digitalocean.com/community/tutorials/how-to-install-linux-nginx-mysql-php-lemp-stack-ubuntu-18-04 我可以使用命令行访问mysql(mysql-u user-p