/// <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); }
/// <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); }