我使用WebAPI
Versioning package通过X-Api头使用“VersionHeaderVersionedControllerSelector”来版本我的API.我也使用
Microsoft.AspNet.WebApi.HelpPage自动生成API的文档.
为了使控制器版本控制起作用,它们需要以命名空间作为命名空间中的后缀的VersionXYZ,以便“VersionHeaderVersionedControllerSelector”能够将请求路由到相应版本的控制器,如下所示:
为了使控制器版本控制起作用,它们需要以命名空间作为命名空间中的后缀的VersionXYZ,以便“VersionHeaderVersionedControllerSelector”能够将请求路由到相应版本的控制器,如下所示:
namespace WEBAPI.Api.Controllers.Version1 { public class ProductsController : ApiController {} } namespace WEBAPI.Api.Controllers.Version2 { public class ProductsController : ApiController {} }
这样做是正常的,但是当我查看生成的帮助页面时,ApiDescription包含ID(GETapi / Version1.Products)和RelativePath(api / Version1.Products)属性中的命名空间中的“VersionXYZ”后缀.
理想情况下,我想做的是让顶级的帮助页面只是API版本号码和钻取的API将以API的方式显示,即ApiDescription.ID = GETapi / Products和ApiDescription.RelativePath = api / Products
有没有办法使用开箱即用的API来实现这一点,或者我需要推出我自己的ApiExplorer实现
解决方法
看看这个答案
Get Help page works with Api Versioning
确保您已经配置了版本控制权,并且需要从项目XXXX.Api.v1项目中获取文档XML文件,并将其放在XXXX.Api项目的bin文件夹中.