我想禁用 API 文档中的
Try it Out
按钮。我在参数和配置中尝试了"tryItOut": false
。此外,我使用的是 swagger 2.0,默认情况下启用“尝试一下”按钮,而在 3.0 中默认情况下禁用它。因此,应该有配置它的选项。如何从 Swagger UI 禁用 Try it out
按钮?
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 和其他方法禁用它。
在 Swagger UI 选项中,针对 .NET 6 或 7 尝试此操作:
app.UseSwaggerUI(options =>
{
options.SwaggerEndpoint("/swagger/v1/swagger.json", "My API");
options.EnableTryItOutByDefault();
});
从 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
参考 - 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,则不会显示“尝试”按钮。