C# ASP.NET Web API文档重复条目
我正在尝试为我的API创建文档。到目前为止,我已经试过了 这两个工具都为我提供了从XML生成的正确文档,但它们都向我显示了重复的条目。我假设这与我的路由配置有关:C# ASP.NET Web API文档重复条目,c#,asp.net-web-api,swagger,C#,Asp.net Web Api,Swagger,我正在尝试为我的API创建文档。到目前为止,我已经试过了 这两个工具都为我提供了从XML生成的正确文档,但它们都向我显示了重复的条目。我假设这与我的路由配置有关: config.Routes.MapHttpRoute( name: "Sample1", routeTemplate: "sample1/{controller}/{id}", defaults: new { id = RouteParameter.Optional }); config.Routes.MapHtt
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
有什么想法吗?根据您上次的评论,您可以通过设置路线约束来实现这一点,并期望帮助页面正确显示。示例如下:
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将无法显示帮助文档。我对您的帖子有点困惑。你能详细说明为什么这里有两条看起来相似的路线吗?比如你的情况是什么?另外,当你说
/sample1/method1
,是sample1
控制器还是method1
控制器……在任何情况下,帮助页面的工作方式是,它迭代路由集合中的每个路由,并获取从该路由可以访问的所有控制器和操作……哦,对不起,没有很好地解释sample1
和sample2
是控制器下的子文件夹,因此我配置了两条路由。我猜正因为如此,HelpPage在所有api控制器中迭代了两次。所以问题是如何区分这些子文件夹中的控制器,而不显示重复的方法?