如何在Swagger UI中删除标题下的API定义URL?

时间:2018-04-02 12:06:36

标签: swagger swagger-ui

我正在使用Swagger UI,并希望删除标题部分下显示的API定义URL(链接到YAML文件),如图所示。可以通过自定义Swagger UI index.html 页面来完成吗?

Swagger-UI

1 个答案:

答案 0 :(得分:1)

选项1:使用CSS隐藏

<!-- index.html -->

<style>
...

.swagger-ui .info hgroup.main a {
  display: none
}
</style>

选项2:使用JavaScript隐藏(v.3.13.0 +)

Swagger UI 3.x使用插件系统来控制渲染。您可以定义一个禁用InfoUrl组件的自定义插件 - 这将阻止呈现API定义链接。此方法适用于Swagger UI 3.13.0及更高版本。

// index.html

window.onload = function() {

  // Custom plugin to hide the API definition URL
  const HideInfoUrlPartsPlugin = () => {
    return {
      wrapComponents: {
        InfoUrl: () => () => null
      }
    }
  }

  // Build a system
  const ui = SwaggerUIBundle({
    ...
    plugins: [
      SwaggerUIBundle.plugins.DownloadUrl,
      HideInfoUrlPartsPlugin    // <---- Apply the plugin
    ],
    ...
  })

Source