在Swagger中禁用“试用”

uqdfh47h  于 2022-11-06  发布在  其他
关注(0)|答案(5)|浏览(139)

这个问题在不同的语言中已经被问过很多次了。在大量的(毫无结果的)浏览之后,我觉得自己很愚蠢,但是,我还是要问
本文档涉及在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
    ]
})

那没有取得任何成果,我不知道下一步该去哪里。

rnmwe5a2

rnmwe5a21#

您可以在swagger中隐藏“尝试"按钮**(使用swashbuckle、C# dotnet核心)**-
受影响的代码行-

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

整个代码示例-(在configure方法内添加)

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
    }
mspsb9vt

mspsb9vt2#

这适用于.Net 6.0和Spring扣。AspNetCore 6.3.1
注意:以下示例仅显示禁用试用按钮的新选项,而不是使用的所有Swagger UI选项。

app.UseSwaggerUI(options =>
{       
    options.EnableTryItOutByDefault();
});
xeufq47z

xeufq47z3#

您可以尝试在startup.cs文件的Configure方法中使用这些行

app.UseSwaggerUI(c =>
              {
                  if (!env.IsDevelopment())
                     c.SupportedSubmitMethods(new SubmitMethod[] { });

                  c.SwaggerEndpoint("/swagger/swagger.json", "API");
              });
mxg2im7a

mxg2im7a4#

NSwag.AspNetCore@13.16.1和.Net 6.0版本的数据库:

app.UseSwaggerUi3(opts =>
{
    opts.EnableTryItOut = env.IsDevelopment();
});

我用这个只允许本地开发“试用”。如果你想让它总是关闭,你可以专门设置为false

jjhzyzn0

jjhzyzn05#

直接禁用/隐藏相应按钮即可:

$(() => {
    $('.tryitout').prop('disabled', true);
})

相关问题