无法改变swagger ui路径

时间:2017-08-24 09:00:23

标签: asp.net-web-api2 swagger-ui swashbuckle

我使用Swagger / Swashbuckle 5.6版为我的ASP.Net Web API 2项目生成文档。

默认情况下,可以通过网址http://localhost:56081/swagger/ui/index

访问API文档

但是,我希望它应该在http://localhost:56081/apihelp/

上提供

我经常搜索,尝试更改SwaggerConfig.cs文件中的设置,但似乎没有任何效果。

那么,这甚至可能吗?如果是的话,有人可以帮我吗?

1 个答案:

答案 0 :(得分:7)

您可以添加EnableSwaggereUi来电的路径, e.g:

SwaggerConfig.Register(HttpConfiguration config)
{
    config.EnableSwaggerUi("apihelp/{*assetPath}", c => 
    ... // following lines omitted
}

然后,您可以使用网址http://localhost:56081/apihelp/index

调用UI

请参阅https://github.com/domaindrivendev/Swashbuckle#custom-routes以供参考。

请注意:默认设置'swagger'会自动重定向到'swagger / ui / index',但是当您使用'apihelp'时,此自定义设置不会自动重定向到'apihelp / index'。 要实现自动重定向,您可以在WebApiConfig

中添加路线
config.Routes.MapHttpRoute(
    name: "Swagger UI",
    routeTemplate: "apihelp",
    defaults: null,
    constraints: null,
    handler: new RedirectHandler(message => message.RequestUri.ToString().TrimEnd('/'), "/index"));

重定向代码基于v.karbovnichy在How to redirect from root url to /swagger/ui/index?

中的回答