客户端调用api来查询按页面查看次数降序排序的产品列表。有时会出现麻烦的情况:客户机A发送请求=>服务器响应,前5篇文章的列表在第一页上有最多的页面浏览量
在回复第一页之后,文章G显着地增加了页面浏览量,排名第五。因此,文章E将降级并移至第二页。如果第二页仍然响应文章E,则完全是在客户端出现了两次。
在用户体验或api设计方面,什么是最好的解决方案?
发布于 2018-05-07 15:51:59
在初始请求时,尝试获取所有返回行的快照(可能是它们的ID与请求ID一起存储在某个表中),然后在后续的页面请求中,根据这些初始行来获取信息。
这意味着您实际上有一个“请求”,其数据存储与“活动”系统分开,而请求的其他页面来自“陈旧”数据。
这是很好的,因为客户端获得良好的完整性返回,但可能不是100%的最新。这可能是一个缺点,因为它迫使您在一开始就查询整个结果集,而不管您正在进行客户端分页。
另一种方法是通知客户端数据可能在分页请求之间被更改。首选的方法将取决于情况,而这种情况在这里并不能得到真正的回答。
无论您以何种方式实现它,都要确保将其包含在API文档中,以便客户端可以计划以某种方式处理它。
https://softwareengineering.stackexchange.com/questions/370555
复制相似问题