ASP.NET Web API文档重复条目

时间:2013-06-11 20:10:53

标签: c# asp.net-web-api swagger

我正在尝试为我的API创建文档。到目前为止,我已尝试使用Swagger.NetWeb API help pages

这两个工具都为我提供了从XML生成的正确文档,但它们都向我显示了重复的条目。我想这与我的路线配置有关:

config.Routes.MapHttpRoute(
   name: "Sample1",
   routeTemplate: "sample1/{controller}/{id}",
   defaults: new { id = RouteParameter.Optional });

config.Routes.MapHttpRoute(
   name: "Sample2",
   routeTemplate: "sample2/{controller}/{id}",
   defaults: new { id = RouteParameter.Optional });

我在视图中看到的是Sample1和Sample2的方法,如下所示:

../sample1/method1
../sample1/method2

../sample2/method1
../sample2/method2

我想要这个:

../sample1/method1

../sample2/method2

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

根据您的上一条评论,您可以通过设置路由约束并期望HelpPage正确显示来完成此操作。示例如下:

config.Routes.MapHttpRoute(
            name: "AdminRoute",
            routeTemplate: "api/folder1/{controller}/{id}",
            defaults: new { id = RouteParameter.Optional },
            constraints: new { controller = "Roles|Users" }
        );

        config.Routes.MapHttpRoute(
            name: "RegularRoute",
            routeTemplate: "api/folder2/{controller}/{id}",
            defaults: new { id = RouteParameter.Optional },
            constraints: new { controller = "Products|Reviews" }
        );

注意:如果您尝试将文件夹设置为路径变量,则HelpPage将无法显示帮助文档。