为什么要使用分页令牌?

时间:2016-02-12 18:44:37

标签: web-services pagination

我正在网络服务上实施分页。我的第一个想法是使用查询参数pagesize,就像Spring Data一样。

但是,我们将一些设计基于google webservice apis。我注意到他们使用分页令牌,每个页面结果都包含nextPageToken。使用这种方法有什么好处?改变数据?在这样的令牌中会编码什么样的信息?

2 个答案:

答案 0 :(得分:1)

当使用偏移量进行分页时,在请求之间插入和删除数据将导致行被跳过或包含两次。如果您能够跟踪之前返回的令牌(通过密钥或其他内容),则可以保证您不会两次返回相同的结果,即使请求之间存在插入/删除。

我对你如何编码令牌有点不确定,但至少对于单个表,你似乎可以使用主键的编码版本作为限制。 "我刚刚在key = 200之前返回了所有内容。下次我只会在200之后退货。"我想这假设在请求1和2之间插入的新项目将被赋予比现有密钥更大的密钥。

https://use-the-index-luke.com/no-offset

答案 1 :(得分:0)

将不透明字符串用于分页令牌的一个原因是,您可以在不破坏客户端的情况下更改分页的实现方式。像页面一样的查询参数(我假设您的意思是页码)对您的客户是透明的,并允许他们对其进行假设。