问题描述
我有一个安装了 Swashbuckle 的 WebApi 项目.
I have a WebApi project with Swashbuckle installed onto it.
在默认设置中,我必须在浏览器中打开 http://localhost:56131/swagger/ui/index
才能查看我的操作描述和测试页面.我希望它可以从站点的根目录访问:http://localhost:56131/
.我怎样才能做到这一点?
In default setup, I must open in browser http://localhost:56131/swagger/ui/index
to view my operations description and test page. I want it to be accessible from root of the site: http://localhost:56131/
. How can I achieve this?
推荐答案
受this answer to similar question的影响,略修改代码:
Influenced by this answer to similar question, slightly modified code:
public class WebApiConfig
{
public static void Configure(IAppBuilder app)
{
var httpConfig = new HttpConfiguration();
// Attribute routing
config.MapHttpAttributeRoutes();
// Redirect root to Swagger UI
config.Routes.MapHttpRoute(
name: "Swagger UI",
routeTemplate: "",
defaults: null,
constraints: null,
handler: new RedirectHandler(SwaggerDocsConfig.DefaultRootUrlResolver, "swagger/ui/index"));
// Configure OWIN with this WebApi HttpConfiguration
app.UseWebApi(httpConfig);
}
}
这样就不需要像@bsoulier 在他的回答中那样创建新的WebAPI 控制器.
This way it is not necessary to create new WebAPI controller as so did @bsoulier in his answer.
此解决方案基于 Swashbuckle.Core
程序集中已有的类 RedirectHandler
.
This solution is based on already existing class RedirectHandler
in Swashbuckle.Core
assembly.
这篇关于如何从根 url 重定向到/swagger/ui/index?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!