一次请求读完整个业务对象,SAP OData $expand 性能优化的正确打开方式

做 SAP Fiori、SAPUI5 或企业集成接口时,很容易碰到一种看起来非常正常、实际上却很消耗性能的访问方式。页面需要展示销售订单以及对应的行项目,于是客户端先请求销售订单列表,再根据每一个销售订单编号继续请求行项目。订单数量少的时候几乎感觉不到区别,可一旦列表中出现几十甚至几百条订单,浏览器 Network 面板里就会迅速堆出大量 HTTP 请求。

这种场景正是 OData $expand 最有价值的地方。

OData 协议里的 $expand 用于把导航属性指向的关联实体直接放入当前响应。OASIS 的 OData 规范明确规定,客户端通过 $expand 指定需要内联返回的关联实体,服务端需要把这些关联内容包含在响应里。OData V4 还允许在 $expand 内继续使用 $select$filter$orderby$top$skip 以及嵌套 $expand 等查询选项。

在 SAP Gateway 的语境里,它并不只是一个让 JSON 层次更漂亮的语法糖。SAP 官方把 $expand 明确列入 OData 性能最佳实践,并指出,相比连续执行多个单独请求,合理使用 $expand 可以减少客户端与 SAP Gateway 之间的往返,也可以减少 SAP Gateway 与后端 SAP Business Suite 之间的往返,从而降低网络耗时、Gateway 响应时间以及资源消耗。如果数据

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

汪子熙

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值