我正在移动客户端上构建即时通讯应用程序,通过HTTP请求与RESTful API交互。分页终点是相当标准的 - 它具有起始位置(偏移量)和页面中项目数(限制)。当数据库可能会快速更改时,我很难弄清楚如何确保100%的数据一致性。
例如,在某些情况下,对话中可能会有几十个参与者在一秒钟内发送几十条新消息。我认为猜测其中一些消息可以在HTTP请求从服务器返回分页时更改数据库并不牵强。幸运的是,由于这是一个即时通讯应用程序,我不必考虑数据删除的可能性,只需考虑数据添加。
在我的研究中,以下两个链接非常有帮助,但没有提供清晰的解决方案: 如何确保分页REST API中的数据完整性? 当结果集可能会更改时,如何使用RESTful API实现强大的分页? 我能想到的唯一解决方案是使用先前获取页面中最后一个对象的时间戳。因此,HTTP查询将具有时间戳作为参数,并且服务器将返回在该时间戳之后创建的对象页。是否存在我没有考虑到的潜在问题,或者更好的解决此问题的方法?
例如,在某些情况下,对话中可能会有几十个参与者在一秒钟内发送几十条新消息。我认为猜测其中一些消息可以在HTTP请求从服务器返回分页时更改数据库并不牵强。幸运的是,由于这是一个即时通讯应用程序,我不必考虑数据删除的可能性,只需考虑数据添加。
在我的研究中,以下两个链接非常有帮助,但没有提供清晰的解决方案: 如何确保分页REST API中的数据完整性? 当结果集可能会更改时,如何使用RESTful API实现强大的分页? 我能想到的唯一解决方案是使用先前获取页面中最后一个对象的时间戳。因此,HTTP查询将具有时间戳作为参数,并且服务器将返回在该时间戳之后创建的对象页。是否存在我没有考虑到的潜在问题,或者更好的解决此问题的方法?