几乎每个主要的云存储服务提供商(例如Google,Box,OneDrive)都使用请求参数将分页信息传递到Web服务,并更新响应对象以进一步将下一页信息传达给客户端。
尽管具有范围和链接之类的标准HTTP标头和自定义标头,人们还是倾向于使用查询参数来传达此类信息。
使用此类标准标头在客户端和服务器之间传递分页信息可保持标准响应唯一,因为我们无需通过响应属性传递此类信息。
那么,在REST API中实现分页的最佳实践是什么?使用HTTP标头或使用查询参数???
答案 0 :(得分:0)
根据http规范:
A proxy MAY discard a Range header field that contains a range unit it does not understand.这意味着任何中间代理(包括缓存服务器)都可能在您的`Range标头到达您的服务器之前将其丢弃。
Link headers与分页无关。
A proxy MUST forward unrecognized header fields unless [..] the proxy is specifically configured to block, or otherwise transform, such fields.我读到,可以将代理配置为阻止所有无法识别的标头,这与Range
标头一样。
除此之外,使用查询参数进行分页(最好是偏移/限制)是一种标准。如果您有充分的理由反对该标准,那很好。不利的一面是,除了其他人的处事方式之外,每个使用您的API的人都必须学习您的处事方式。这降低了采用率并增加了支持电话。