我们有3个产品供用户订购.
例如:
鉴于:
3个微服务,根据时间戳为订单历史记录提供3个单独的分页响应.
需要:
按时间戳的降序显示所有3个来源的订单历史记录,并在用户滚动时将它们分页.即,根据时间戳和显示对来自3个来源的响应进行排序和合并.
用户可能购买了:
此外,购买的时间表也可能有所偏差.例如:用户仅用Itunes音乐购买了10首歌曲.
我能想到的方法:
1.仅对客户进行举重:
将并行调用所有3个API,等待所有API的响应.在本地存储它们.
根据时间戳进行合并和排序.
剪切最上面的n个项目并显示在设备上.
当用户滚动时,将检查本地是否存在任何数据并相应地调用API.
2.仅在服务器端进行重装:
有一个代理人将与所有服务进行对话.
收到客户的要求后fetchData (noOfItems, fetchedUntilTimestamp),
代理应通过调用getData(noOfItems, fetchFromTimeStamp)其中的每一个来从不同的源获取数据.
每个数据源都应从时间戳fetchFromTimeStamp及以下开始获取noOfItems并返回数据列表.
代理人应:
代理应返回客户端:RESULT_LIST + fetchedUntilTimeStamp
从下一个请求开始,客户端应fetchData (noOfItems, fetchedUntilTimestamp)使用fetchedUntilTimeStamp从前一个呼叫的服务器接收的呼叫进行呼叫
两者中哪一个更受青睐?有没有更好的解决方法呢?