Example #1
0
        /// <summary>
        /// 生成接口代码
        /// </summary>
        /// <returns></returns>
        private string ToAPI()
        {
            var Host = NetCoreExt.Host; //临时测试使用
            IEnumerable <IGrouping <string, ApiModel> > query = NetCoreExt.ApiEnumerable.ApiModels.GroupBy(api => api.ControllerName);
            var jq_api      = "";
            var jq_api_list = "";

            foreach (var coll in query)
            {
                jq_api_list += $@"'{coll.First().ControllerName.Replace("Controller", string.Empty)}',";
                List <ApiModel> api = coll.ToList <ApiModel>();
                this.Area = string.IsNullOrEmpty(api.FirstOrDefault().Area) ? "" : api.FirstOrDefault().Area + "_";
                var methods = "";
                foreach (var method in api)
                {
                    RouteAnaly routeAnaly = new RouteAnaly(method.Area, method.RouteFilter, method.ControllerName, method.ActionName, method.ActionRouteFilter);

                    var link = $@"'{Host}' + {routeAnaly.Link}";
                    //参数整理
                    var _params = "";
                    var data    = "";
                    foreach (var p in method.ParamTypes)
                    {
                        _params += $@"{p.Name},";
                        data    += $@"{p.Name}:{p.Name},";
                    }
                    if (data.Length > 0)
                    {
                        data = data.Substring(0, data.Length - 1);
                        data = $@"{{{data}}}";
                    }
                    else
                    {
                        data = "{}";
                    }
                    var methodRequestMethod = method.RequestMethod.ToLower();
                    var dataType            = methodRequestMethod.ToLower() == "get" ? "params" : "data";
                    //API方法构建
                    var jq_method = $@"    {method.ActionName}:function({_params}callback){{
                    $.ajax({{
                        method:'{methodRequestMethod}',
                        url:{link},
                        {dataType}:{data}
                    }}).then(function(res){{
                        callback(res);
                    }})}},";
                    methods += jq_method;
                }
                methods = methods.Substring(0, methods.Length - 1);
                jq_api += $@"  $.api.{this.Area}{coll.First().ControllerName.Replace("Controller", string.Empty)} = {{{methods}}},";
            }
            jq_api_list = jq_api_list.Substring(0, jq_api_list.Length - 1);
            jq_api      = jq_api.Substring(0, jq_api.Length - 1);
            return(jq_api);
        }
Example #2
0
        /// <summary>
        /// 生成接口代码
        /// </summary>
        /// <returns></returns>
        private string ToAPI()
        {
            var Host = NetCoreExt.Host; //临时测试使用
            IEnumerable <IGrouping <string, ApiModel> > query = NetCoreExt.ApiEnumerable.ApiModels.GroupBy(api => api.ControllerName);
            var react_api      = "";
            var react_api_list = "";

            foreach (var coll in query)
            {
                react_api_list += $@"'{coll.First().ControllerName.Replace("Controller", string.Empty)}',";
                List <ApiModel> api = coll.ToList <ApiModel>();
                this.Area = string.IsNullOrEmpty(api.FirstOrDefault().Area) ? "" : api.FirstOrDefault().Area + "_";
                var methods = "";
                foreach (var method in api)
                {
                    RouteAnaly routeAnaly = new RouteAnaly(method.Area, method.RouteFilter, method.ControllerName, method.ActionName, method.ActionRouteFilter);

                    var link = $@"'{Host}' + {routeAnaly.Link}";
                    //参数整理
                    var _params = "";
                    var data    = "";
                    foreach (var p in method.ParamTypes)
                    {
                        _params += $@"{p.Name},";
                        data    += $@"{p.Name}:{p.Name},";
                    }
                    if (data.Length > 0)
                    {
                        data = data.Substring(0, data.Length - 1);
                        data = $@"{{{data}}}";
                    }
                    else
                    {
                        data = "{}";
                    }
                    var methodRequestMethod = method.RequestMethod.ToLower();
                    //头部,暂时的方法
                    var headers  = methodRequestMethod.ToLower() == "get" ? "" : @" headers:{{ 'Content-Type': 'application/x-www-form-urlencoded' }}";
                    var dataType = methodRequestMethod.ToLower() == "get" ? "params" : "data";
                    //API方法构建
                    var react_method = $@"    {method.ActionName}:function({_params}callback){{
                    axios({{
                        ""method"":'{methodRequestMethod}'
                        ""url"":{link}
                        {dataType}:{data},
                        {headers}
                    }}).catch(function(error){{
                        if(that.ErrorCatch!=null && that.ErrorCatch!=undefined){{
                            that.ErrorCatch(error,""${coll.First().ControllerName.Replace("Controller", string.Empty)}-{method.ActionName}"");
                        }} 
                    }}).then(function(res){{
                        callback(res);
                    }})}},";
                    methods += react_method;
                }
                methods    = methods.Substring(0, methods.Length - 1);
                react_api += $@"  react.$api.{this.Area}{coll.First().ControllerName.Replace("Controller", string.Empty)} = {{{methods}}},";
            }
            react_api_list = react_api_list.Substring(0, react_api_list.Length - 1);
            react_api      = react_api.Substring(0, react_api.Length - 1);
            return(react_api);
        }