对于不同的语言,这个问题已经问了很多。经过大量的(无结果的)浏览之后,我感觉自己很笨,但是我还是要问
本文档涉及在看起来像Javascript中添加Swagger插件 https://github.com/swagger-api/swagger-ui/issues/3725
我尝试将代码添加为注入的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
]
})
那什么都没实现,我也不知道下一步该怎么做。
答案 0 :(得分:5)
您可以隐藏(使用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
}
答案 1 :(得分:1)
只需尝试直接禁用/隐藏相应的按钮:
$(() => {
$('.tryitout').prop('disabled', true);
})
答案 2 :(得分:1)
您可以尝试在 startup.cs 文件中的 Configure 方法中使用这些行
app.UseSwaggerUI(c =>
{
if (!env.IsDevelopment())
c.SupportedSubmitMethods(new SubmitMethod[] { });
c.SwaggerEndpoint("/swagger/swagger.json", "API");
});