【发布时间】:2013-05-07 13:20:06
【问题描述】:
我有两个 API 控制器位于两个具有 GetEvents() 操作的不同文件夹中:
V1
EventsController
V2
EventsController
我希望能够使用以下方式访问控制器:
api/v1/events and api/v2/events
我的路线模板如下所示
api/v{version}/{controller}
私有静态字符串 GetRequestVersion(HttpRequestMessage 请求) {
// 如何从 url 中找到 {version} 的值?
}
我使用 REGEX 编写了一个运行良好的代码:
private static string ExtractVersionFromUrl(HttpRequestMessage request)
{
Match match = Regex.Match(request.RequestUri.PathAndQuery, @"/v(?<version>\d+)/", RegexOptions.IgnoreCase);
return match.Success ? match.Groups["version"].Value : null;
}
从 uri 检索此类数据的标准方法是什么?
【问题讨论】:
标签: c# asp.net controller versioning asp.net-web-api