c# - 在 Swagger 中禁用 "Try It Out"

标签 c# asp.net-mvc swagger swashbuckle

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

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

我尝试将该代码添加为注入(inject)的 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
    ]
})

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

最佳答案

你可以在 swagger 中隐藏试用按钮 (使用 swashbuckle,C# dotnet 核心) -

受影响的代码行 -

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
    }

关于c# - 在 Swagger 中禁用 "Try It Out",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55914610/

相关文章:

c# - GC压力——List vs Array,class vs struct

c# - 如何使用 lambda 表达式进行验证以验证某个小时是否为某个 "type"(必须为 hh :00 or hh:30)

asp.net-mvc - Mvc 渲染 Action /部分响应输出

c# - Swagger 不工作 Asp.net Core 如何打开 swagger ui

asp.net - 缺少 Web Api 的 swagger REST 描述

c# - 需要有关基于 Windows 的聊天应用程序的概念

c# - C# 和 foreach 中的枚举

c# - 我无法在 C# 中正确运行带引号的 powershell 代码

javascript - 如何将数据从表单传递到我的 Controller ,然后返回到我的客户端 javascript?

java - 从现有 Java 代码生成 Swagger 文档?