Abh*_*tel 15 asp.net-web-api asp.net-web-api-routing
我正在使用WebAPI 版本控制包通过X-Api-Header使用"VersionHeaderVersionedControllerSelector"对我的API进行版本控制.我还使用Microsoft.AspNet.WebApi.HelpPage自动生成API的文档.为了控制versionign工作,他们需要与VersionXYZ进行的命名空间命名空间中的后缀,使"VersionHeaderVersionedControllerSelector"能够将请求路由到像这样的控制器的相应版本:
namespace WEBAPI.Api.Controllers.Version1
{ public class ProductsController : ApiController {} }
namespace WEBAPI.Api.Controllers.Version2
{ public class ProductsController : ApiController {} }
Run Code Online (Sandbox Code Playgroud)
这按预期工作,但是当我看到生成的帮助页面ApiDescription被包括在ID(命名空间中的"VersionXYZ"后缀GETapi/Version1.Products)和RelativePath(API/Version1.Products)性能.理想的情况是什么,我想要做的就是有一个顶层帮助页面刚刚API的版本号和钻探将呈现API即ApiDescription.ID = GETapi /产品和ApiDescription.RelativePath = API /产品的正常方式
有没有办法使用Out of the Box API实现这一点,或者我需要推出自己的ApiExplorer实现
不幸的是,ApiExplorer 不支持重复的控制器名称。因此,通过这种方式实现控制器版本控制,您的(或包代码)不能很好地与系统配合。
考虑另一种选择,您实际上可以更改控制器名称(是的,您将必须实现自己的解决方案,但老实说它并不那么复杂)。例如,使版本成为控制器名称本身的一部分(而不是其名称空间)。
例如Ver1_ProuctsController
现在这些将开始显示在您的帮助页面上,并且由于帮助页面只是内容包,您可以更改逻辑以使以 verxxx_ 开头的名称发生变化。
| 归档时间: |
|
| 查看次数: |
2202 次 |
| 最近记录: |