如何禁用net core中的swagger验证

时间:2016-04-13 08:25:40

标签: asp.net-core swashbuckle

我正在寻找一种方法来在使用Swashbuckle进行网络核心web api项目时禁用swagger验证功能。更确切地说,我如何将ValidatorUrl设置为null。

1 个答案:

答案 0 :(得分:0)

我发现默认情况下它没有被禁用。我正在运行Swashbuckle.AspNetCore v1.1.0和.net core 2.0。我尝试了以下哪些不工作

app.UseSwaggerUI(c =>
        {
            c.SwaggerEndpoint("/swagger/v1/swagger.json", "MY API");
            c.EnabledValidator(null);
        });

我找到的唯一解决方案是修改他们的swagger-ui.js文件。我不喜欢这个解决方案,但它有效。

在第198行附近,您将看到以下内容:

    return "    <span style=\"float:right\"><a target=\"_blank\" href=\""
    + ((stack1 = (helpers.escape || (depth0 && depth0.escape) || alias2).call(alias1,(depth0 != null ? depth0.validatorUrl : depth0),{"name":"escape","hash":{},"data":data})) != null ? stack1 : "")
    + "/debug?url="
    + ((stack1 = (helpers.escape || (depth0 && depth0.escape) || alias2).call(alias1,(depth0 != null ? depth0.url : depth0),{"name":"escape","hash":{},"data":data})) != null ? stack1 : "")
    + "\"><img id=\"validator\" src=\""
    + ((stack1 = (helpers.escape || (depth0 && depth0.escape) || alias2).call(alias1,(depth0 != null ? depth0.validatorUrl : depth0),{"name":"escape","hash":{},"data":data})) != null ? stack1 : "")
    + "?url="
    + ((stack1 = (helpers.escape || (depth0 && depth0.escape) || alias2).call(alias1,(depth0 != null ? depth0.url : depth0),{"name":"escape","hash":{},"data":data})) != null ? stack1 : "")
    + "\"></a>\n    </span>\n";
},"compiler":[7,">= 4.0.0"],"main":function(container,depth0,helpers,partials,data) {
    var stack1, alias1=depth0 != null ? depth0 : {};

我删除了他们的锚标签,现在看起来像这样:

  return "    <span style=\"float:right\"></span>\n";
},"compiler":[7,">= 4.0.0"],"main":function(container,depth0,helpers,partials,data) {
    var stack1, alias1=depth0 != null ? depth0 : {};