如何通过Ocelot网关传递Kendo Grid的DataSourceRequest对象
Ocelot网关下Kendo DataSourceRequest参数传递问题
我有一套通过Ocelot配置的API网关,希望向API发送携带Kendo对象的请求,后端可直接接收为Kendo DataSourceRequest 类型。此前我在Angular与.NET Core API的组合项目中已成功实现该功能,运行正常,但在当前项目中不知道如何通过Ocelot完成该需求,相关代码如下:
后端API接口
[HttpGet] public ActionResult User_Read([DataSourceRequest] DataSourceRequest request) { var data = _unitOfWork.Repository<User>().GetAll(); return Ok(data.ToList().ToDataSourceResult(request, ModelState)); }
Ocelot原有配置
{ "DownstreamPathTemplate": "/api/auth/User_Read/{everything}", "DownstreamScheme": "http", "DownstreamHostAndPorts": [ { "Host": "localhost", "Port": 9001 } ], "UpstreamPathTemplate": "/User_Read/{everything}", "UpstreamHttpMethod": [ "get" ] }
客户端请求代码
read: function (e) { if (thisObject.defaultFilter) { if (e.data.filter) { var filters = e.data.filter.filters; var existFilter = filters.filter(function (obj) { if (obj.field == thisObject.defaultFilter.field) return true; }).lenght > 0; if (!existFilter) e.data.filter.filters.push(thisObject.defaultFilter); } else { e.data.filter = { logic: "and", filters: [thisObject.defaultFilter] } } } const params = `${toDataSourceRequestString(e.data)}`; // 数据源读请求 thisObject.http.get(thisObject.readUrl + "?" + params).subscribe((res) => { e.success(res); }); }
我已自行定位到问题出在Ocelot配置上,后续将给出具体解决方案。
内容的提问来源于stack exchange,提问作者Mohsen Zahedi
相关产品推荐
相关产品推荐

