将分页信息传递给RestController的最佳方法是什么?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将分页信息传递给RestController的最佳方法是什么?相关的知识,希望对你有一定的参考价值。
几乎每个主要的云存储服务提供商(如Google,Box,OneDrive)都使用请求参数将分页信息传递给Web服务并更新响应对象以进一步将下一页信息传达给客户端。
尽管有标准的HTTP标头,如Range和Link以及自定义标头,但人们倾向于使用查询参数来传达此类信息。
使用此类标准标头在客户端和服务器之间传递分页信息使标准响应保持唯一,因为我们不需要通过响应属性传递此类信息。
那么,在REST API中实现分页的最佳实践是什么?使用HTTP标头或查询参数???
答案
根据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的人都必须学习你的做事方式以及其他人做事的方式。这降低了采用率并增加了支持呼叫。
以上是关于将分页信息传递给RestController的最佳方法是什么?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Node、Mongoose、Bootstrap 进行分页并将其传递给 html?