使用swagger-config.yaml进行Swagger UI配置

时间:2018-11-21 14:57:04

标签: javascript swagger swagger-ui swagger-2.0 openapi

根据一般文件,

  

Swagger-UI在四个位置接受配置参数。

     

从最低到最高优先级:

     
      
  1. 项目根目录中的swagger-config.yaml(如果存在)被烘焙到应用程序中
  2.   
  3. 配置对象作为参数传递给Swagger-UI(SwaggerUI({...}))
  4.   从指定的configUrl获取的
  5. 配置文档
  6.   
  7. 在URL查询字符串中作为键/值对传递的配置项
  8.   

我试图将swagger-config.yaml放在应用程序的根目录中,但无法正常工作。

我已按照严格的安装步骤操作,并且工作正常。 但是大步自定义配置的步骤不起作用。我保存了以下文件,

 swagger-ui
   |--swagger-config.yaml
   |--index.html

swagger-config.yaml

url: "https://petstore.swagger.io/v2/swagger.json"
dom_id: "#swagger-ui"
validatorUrl: "https://online.swagger.io/validator"
oauth2RedirectUrl: "http://localhost:3200/oauth2-redirect.html"

index.html

// Begin Swagger UI call region
      const ui = SwaggerUIBundle({
        //url: "https://petstore.swagger.io/v2/swagger.json",
        //dom_id: '#swagger-ui',
        deepLinking: true,
        presets: [
          SwaggerUIBundle.presets.apis,
          SwaggerUIStandalonePreset
        ],
        plugins: [
          SwaggerUIBundle.plugins.DownloadUrl
        ],
        layout: "StandaloneLayout"
      })

知道我是否有任何遗漏吗?

1 个答案:

答案 0 :(得分:1)

我也有这个问题。从文档上看,如果使用swagger-config.xml,我们似乎不需要在index.html中配置任何东西,实际上,它在我这边不起作用,我没有找到原因。 但是如果改用 configUrl,它就可以工作。

// Begin Swagger UI call region
const ui = SwaggerUIBundle({
  //url: "https://petstore.swagger.io/v2/swagger.json",
  //dom_id: '#swagger-ui',
  configUrl: "../swagger-config.yaml",
  deepLinking: true,
  presets: [
    SwaggerUIBundle.presets.apis,
    SwaggerUIStandalonePreset
  ],
  plugins: [
    SwaggerUIBundle.plugins.DownloadUrl
  ],
  layout: "StandaloneLayout"
})

并且可以配置为支持数组。

---
urls:
 - url: "https://petstore.swagger.io/v2/swagger.json"
   name: "url1"
   
 - url: "https://petstore.swagger.io/v2/swagger.json"
   name: "url2"