Я использую WebAPI пакет версий для версии моего API с помощью X-Api-Header с помощью "VersionHeaderVersionedControllerSelector". Я также использую Microsoft.AspNet.WebApi.HelpPage для автоматической генерации документации для API. Для того чтобы контроллер versionign работал, они должны быть помещены в namespaced с VersionXYZ как суффикс в пространстве имен так, чтобы "VersionHeaderVersionedControllerSelector" мог направлять запрос в соответствующую версию контроллера следующим образом:
namespace WEBAPI.Api.Controllers.Version1
{ public class ProductsController : ApiController {} }
namespace WEBAPI.Api.Controllers.Version2
{ public class ProductsController : ApiController {} }
Это работает по назначению, но когда я просматриваю созданные страницы справки, ApiDescription включает суффикс "VersionXYZ" из пространства имен в ID (GETapi/Version1.Products) и RelativePath ( api/Version1.Products). В идеале, я бы хотел, чтобы страница справки верхнего уровня, в которой только номера версии API и сверление отображали API, обычным способом, т.е. ApiDescription.ID = GETapi/Products и ApiDescription.RelativePath = api/Products
Есть ли способ достичь этого, используя API-интерфейсы Out of the Box, или мне нужно будет внедрить мою собственную реализацию ApiExplorer