SwaggerUI Docker 支持两个 api 文件(本地)

SwaggerUI Docker support for two api files (locally)

我正在尝试创建一个 Swagger UI 配置来显示我的几个 API。它们不是公开托管的,定义文件在我的本地文件系统中。我正在使用 swagger ui 和 docker。我使用以下命令 运行 它:

docker run -p 8080:8080 -v $(pwd)/_build:/spec swaggerapi/swagger-ui

_build 目录中有我的 yaml 规范文件。这是 swagger-config.yaml 配置文件:

urls:
  - /spec/openapi2.yaml
  - /spec/openapi.yaml
plugins:
  - topbar

我也试过:

urls:
  - url: /spec/openapi2.yaml
    name: API1
  - url: /spec/openapi.yaml
    name: API2
plugins:
  - topbar

完成运行后,我看到的是这样的:

这是 Swagger UI 的默认 API,所以我想我的配置有错误。我尝试了几种方法,但都没有用,而且我似乎没有找到任何关于 swagger-config.yaml 配置文件的好文档。

有没有办法让它与多个 API 一起使用?

根据 Swagger UI 问题跟踪器中的 comments,Docker 版本需要 JSON 格式的配置文件,而不是 YAML。

试试这个 swagger-config.json:

{
  "urls": [
    {
      "url": "/spec/openapi2.yaml",
      "name": "API1"
    },
    {
      "url": "/spec/openapi.yaml",
      "name": "API2"
    }
  ],
  "plugins": [
    "topbar"
  ]
}

同时将 -e CONFIG_URL=/path/to/swagger-config.json 添加到 docker run 命令中。