Swagger UI 禁用“试用”按钮

问题描述 投票:0回答:4

我想禁用 API 文档中的

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

swagger-ui
4个回答
19
投票

在 Swagger UI 配置中将

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

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

此配置还可以有选择地禁用特定 HTTP 方法的“尝试”。例如,

supportedSubmitMethods: ["get", "head"]
仅对 GET 和 HEAD 保留“Try it out”,但对 POST、PUT、PATCH、DELETE 和其他方法禁用它。


10
投票

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

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

0
投票

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

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

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

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


0
投票

参考 - Spring Boot 3 + Swagger (OpenAPI) 示例

如果是 Spring Boot + Swagger,我们需要在属性文件中提供以下配置

springdoc.swagger-ui.try-it-out-enabled=false
springdoc.swagger-ui.supportedSubmitMethods=

如果我们现在访问 http://localhost:8080/swagger-ui/index.html,则不会显示“尝试”按钮。 enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.