Web services 为什么要使用分页标记?

Web services 为什么要使用分页标记?,web-services,pagination,Web Services,Pagination,我正在Web服务上实现分页。我的第一个想法是使用查询参数page和size,就像Spring数据一样 然而,我们的一些设计是基于GoogleWebService API的。我注意到它们使用分页标记,每个页面结果都包含一个nextPageToken。使用这种方法的优势是什么?改变数据?在这样的令牌中会编码什么样的信息?分页令牌使用不透明字符串的一个原因是,您可以在不中断客户端的情况下更改分页的实现方式。像页面这样的查询参数(我假设您指的是页码)对您的客户机是透明的,并允许他们对其进行假设。使用偏移

我正在Web服务上实现分页。我的第一个想法是使用查询参数
page
size
,就像Spring数据一样


然而,我们的一些设计是基于GoogleWebService API的。我注意到它们使用分页标记,每个页面结果都包含一个
nextPageToken
。使用这种方法的优势是什么?改变数据?在这样的令牌中会编码什么样的信息?

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

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

我有点不确定如何对令牌进行编码,但对于单个表,至少可以使用主键的编码版本作为限制。“我只返回了key=200之前的所有内容。下次我只返回key=200之后的内容。”我猜这是假设在请求1和请求2之间插入的新项目将获得一个大于现有键的键