首页 > 解决方案 > 在 Swagger 中禁用“试用”

问题描述

对于不同的语言,这个问题已经被问了很多。经过大量(无果)浏览后,我感觉很愚蠢,但无论如何我都会问

本文档指的是在似乎是 Javascript https://github.com/swagger-api/swagger-ui/issues/3725中添加 Swagger 插件

我尝试将该代码添加为注入的 Javascript 资源:

c.InjectJavaScript(thisAssembly, "MyProject.Scripts.swagger-plugins.js");

.js 文件中的代码是

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

const DisableAuthorizePlugin = function () {
    return {
        wrapComponents: {
            AuthorizeBtn: () => () => null
        }
    }
}

SwaggerUI({
    plugins: [
        DisableTryItOutPlugin,
        DisableAuthorizePlugin
    ]
})

那一无所获,我不知道下一步该去哪里。

标签: c#asp.net-mvcswaggerswashbuckle

解决方案


您可以在 swagger 中隐藏 Try it out 按钮(使用 swashbuckle,C# dotnet core) -

受影响的代码行 -

c.SupportedSubmitMethods(new Swashbuckle.AspNetCore.SwaggerUI.SubmitMethod[] { }

整个代码示例 - (在配置方法中添加)

 app.UseSwaggerUI(c =>
            {
                c.SwaggerEndpoint("/swagger/test/swagger.json", "test API");
                c.SupportedSubmitMethods(new Swashbuckle.AspNetCore.SwaggerUI.SubmitMethod[] { });
            });

这是有效的,因为我们使用了 SubmitMethod 枚举,其中包含以下值 -

    public enum SubmitMethod
    {
        Get = 0,
        Put = 1,
        Post = 2,
        Delete = 3,
        Options = 4,
        Head = 5,
        Patch = 6,
        Trace = 7
    }

推荐阅读