/// <summary> /// Api版本匹配路由 /// 将Url的{version}标记追加到Action名之后,两者中间下划线分开 /// 此路由规则需要优先默认路由规则添加到路由表中 /// </summary> /// <param name="routes">路由列表</param> /// <param name="handler">处理者</param> /// <param name="name">名称</param> /// <param name="url">URL,要包含{version}标志</param> /// <param name="defaults">初始值</param> /// <param name="namespaces">空间</param> public static void MapRoute(this RouteCollection routes, IRouteHandler handler, string name, string url, object defaults, string[] namespaces) { var route = new VersionRoute(url, handler) { Defaults = CreateRouteValueDictionary(defaults), Constraints = new RouteValueDictionary(), DataTokens = new RouteValueDictionary() }; if ((namespaces != null) && (namespaces.Length > 0)) { route.DataTokens["Namespaces"] = namespaces; } routes.Add(name, route); }
public async Task <IEnumerable <ModelVersion> > GetVersions(string modelId) { var route = new VersionRoute(); RestSharpBase requestBase = new RestSharpBase(route.GetVersions, Method.GET); RestRequest req = requestBase.Request; req.AddHeader("modelid", modelId); IRestResponse <IEnumerable <ModelVersion> > response = await _client.ExecuteAsync <IEnumerable <ModelVersion> >(req); switch ((int)response.StatusCode) { case 200: return(response.Data); default: throw new System.Exception(response.StatusDescription); } }