我正在使用 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 {} }
这按预期工作,但是当我查看生成的帮助页面时,ApiDescription包含来自 ID ( GETapi/Version1.Products ) 和 RelativePath( api/Version1.Products ) 属性中命名空间的“VersionXYZ”后缀。理想情况下,我想做的是有一个顶级帮助页面,其中只有 API 版本号和钻取会以正常方式显示 API,即 ApiDescription.ID = GETapi/Products 和 ApiDescription.RelativePath = api/Products
有没有办法使用开箱即用的 API 来实现这一点,还是我需要推出自己的ApiExplorer实现