我有两个 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中检索此类数据的标准方法是什么?