@
charlie21 #125 实际项目往往都会出现他说的那种场景;
一开始数据量小的时候,订单详情一个接口就把数据跑出来了,大家都方便。
数据量大了的时候,汇聚的接口返回 JSON 大小几百 KB ,开启 GZIP 的情况下,后端负载还算可以,但前端浏览器已经卡成狗了。
这个时候就需要拆分接口,先出列表,然后用户点开信息的时候,分开加载。
这种场景我遇到过两次,
一次是产品列表,
productList
|--spuList
|----skuList
开始的时候是分页返回 10 条 productList,里面汇聚了 spuList 和 skuList 的信息;
但对接某平台后,单个产品有几十个的 spu ,一个 spu 里有上百个 sku 。
浏览器直接崩溃,后来拆分接口,productList & spuList 汇聚 skuList 单独查询。
另一次是订单详情,
orderInfo
|--orderList
|----.....
|--personList
|---....
|--orderLog
|---....
|--payLog
|---....
|--.....
主订单包含一堆子订单,子订单关联不同的供应商,订单操作日志和财务信息等。
和上面一样,一开始都是把这堆信息打包到 JSON 里一次加载出来,
但实际使用后,由于 personList 和 orderList 是可以修改的,导致每次修改后都要重复载入,
最后只能才分开各自一个接口,哪一块操作后就加载哪一块的数据。
后期供应部分还对接的第三方平台,线上发单后的结果是异步返回的,所以针对供应状态也独立一个接口进行查询。
业务上线后,改动居多的都是前端部分,后端不可能因为“方便”前端,而把自己也“耗”进去吧。