Swagger UI 禁用“试用”按钮

Ram*_*san 15 swagger-ui

我想禁用Try it OutAPI 文档中的按钮。"tryItOut": false我在参数和配置上都试过了。此外,我使用的是 swagger 2.0,默认情况下启用“尝试一下”按钮,而在 3.0 中默认情况下禁用它。因此,应该有配置它的选项。如何Try it out从 Swagger UI 禁用按钮?

Hel*_*len 18

在 Swagger UI 配置中设置supportedSubmitMethods为空数组。[]v. 3.10.0+ 支持此配置选项。

const ui = SwaggerUIBundle({
  "dom_id": "#swagger-ui",
  url: "https://path/to/your/api.yaml",
  ...
  supportedSubmitMethods: []    // <--------
})
Run Code Online (Sandbox Code Playgroud)

此配置还可以有选择地禁用特定 HTTP 方法的“尝试”。例如,supportedSubmitMethods: ["get", "head"]仅对 GET 和 HEAD 保留“Try it out”,但对 POST、PUT、PATCH、DELETE 和其他方法禁用它。


Jey*_*san 8

在 Swagger UI 选项中,针对 .NET 6 或 7 尝试以下操作:

    app.UseSwaggerUI(options =>
    {
        options.SwaggerEndpoint("/swagger/v1/swagger.json", "My API");
        options.EnableTryItOutByDefault();
    });
Run Code Online (Sandbox Code Playgroud)


Ram*_*san 1

从 GitHub 存储库评论中,以下代码对我有用

const DisableTryItOutPlugin = function() {
  return {
    statePlugins: {
      spec: {
        wrapSelectors: {
          allowTryItOutFor: () => () => false
        }
      }
    }
  }
}

// elsewhere, when you call Swagger-UI...
SwaggerUI({
  plugins: [
    DisableTryItOutPlugin
  ]
})
Run Code Online (Sandbox Code Playgroud)

参考:https ://github.com/swagger-api/swagger-ui/issues/3725#issuecomment-334899276