【发布时间】:2020-07-03 02:27:40
【问题描述】:
我在我的 WebApiConfig 中使用 config.AddApiVersioning() 对我的 Asp.Net Web Api 2 api 进行版本控制。我的每个控制器都装饰有 [Route("api/TestApi/v{version:apiVersion}/{action}/{id?}")] 之类的东西。
我想删除大部分装饰,而是在我的 WebApiConfig 中使用类似的东西:
config.Routes.MapHttpRoute(
"ApiControllerVersionActionId",
"api/{controller}/v{version:apiVersion}/{action}/{id}",
new { id = UrlParameter.Optional },
new
{
// e.g., 1.0, 12.75
apiVersion = @"^[0-9]+\.[0-9]+$",
// only GUIDs or integers
id = @"^(\{){0,1}(\(){0,1}[0-9a-fA-F]{8}\-{0,1}[0-9a-fA-F]{4}\-{0,1}[0-9a-fA-F]{4}\-{0,1}[0-9a-fA-F]{4}\-{0,1}[0-9a-fA-F]{12}(\)){0,1}(\}){0,1}$|^\d+$"
}
);
我的问题:
- 这可能吗?
- 有例子吗?我发现的大多数示例都装饰了所有控制器。
【问题讨论】:
标签: asp.net-web-api2 aspnet-api-versioning