我目前正在使用 Web API 2 的属性路由(http://www.asp.net/web-api/overview/web-api-routing-and-actions/attribute-routing-in-web-api实现一个 Web API -2 )。我还使用帮助页面模块从 XML 注释自动生成文档(http://www.asp.net/web-api/overview/creating-web-apis/creating-api-help-pages)。
对于这个 API,我提供了对可选返回格式扩展的支持,因此每个 API 方法都定义了一对路由,如下所示:
[HttpGet]
[Route("Path/Foo")]
[Route("Path/Foo.{ext}")]
public HttpResponseMessage DoFoo()
{
// Some API function.
}
这允许用户点击其中任何一个并获得结果:
www.example.com/api/Controller/Path/Foo
www.example.com/api/Controller/Path/Foo.json
www.example.com/api/Controller/Path/Foo.xml
我的问题是,当帮助页面使用 MapHttpAttributeRoutes() 生成文档时,它会为每种方法选择两条路线。所以现在我看到了以下帮助:
api/Controller/Foo
api/Controller/Foo.{ext}
但我只想看到:
api/Controller/Foo.{ext}
我更愿意在每个方法上隐藏非扩展路由,以便每个方法只显示一个帮助页面条目。
有没有其他人尝试过类似的东西?有没有我想念的解决方法?