コード例 #1
0
        /// <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);
        }
コード例 #2
0
        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);
            }
        }