在 Swagger 中禁用“试用”

Jim*_*mbo 8 c# asp.net-mvc swagger swashbuckle

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

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

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

c.InjectJavaScript(thisAssembly, "MyProject.Scripts.swagger-plugins.js");
Run Code Online (Sandbox Code Playgroud)

.js 文件中的代码是

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

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

SwaggerUI({
    plugins: [
        DisableTryItOutPlugin,
        DisableAuthorizePlugin
    ]
})
Run Code Online (Sandbox Code Playgroud)

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

小智 13

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

受影响的代码行 -

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

Run Code Online (Sandbox Code Playgroud)

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

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

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

    public enum SubmitMethod
    {
        Get = 0,
        Put = 1,
        Post = 2,
        Delete = 3,
        Options = 4,
        Head = 5,
        Patch = 6,
        Trace = 7
    }
Run Code Online (Sandbox Code Playgroud)


Sla*_*nov 0

只需尝试直接禁用/隐藏相应的按钮:

$(() => {
    $('.tryitout').prop('disabled', true);
})
Run Code Online (Sandbox Code Playgroud)

  • 这并不能阻止任何人。您只需通过 Web 控制台重新启用它即可。 (4认同)