rest - 分页 REST API : How to select amount of data returned?

标签 rest

我知道,当今大多数 REST API 中,网络调用响应都必须分页。 但是,我在网上没有看到任何关于如何选择 API 调用返回的批处理的理想大小的见解:应该是 10、100、1000。简而言之:我们应该基于哪些因素来反射(reflect)API 响应的大小?

有些人认为它应该基于 UI 显示的元素数量。我不同意这一点,因为并非所有 API 都直接与 UI 链接,并且在任何情况下,现代 REST API 都允许使用可配置参数选择输出批处理中的项目数量,最多可达一定数量。

那么,我们如何定义“HTTP 请求返回的最大元素数”的值呢? 它应该基于有效负载大小吗? API的内部架构?它应该基于绩效衡量吗?

对此有什么见解吗?我并不是真的在寻找一个明确的数字,而是更多一些可以帮助找到答案的技术。对我来说最好的就是一些成功的 API 所遵循的过程。但是,我找不到任何。

最佳答案

我对此的一般方法是:

  1. 尽量避免分页
  2. 通过使用 nextprevious 链接(而不是使用 ?page= 属性),使 REST 客户端能够灵活应对分页更改。 REST 客户端严格通过链接的外观知道另一个页面可用。

我不使用硬性规则或测量来确定何时需要分页。分页通常很痛苦,因此我的第一个方法是尝试找出哪些需求驱动了分页的需求,以及是否可以删除该需求。

一旦我确定无法以其他方式删除此要求,我就会将页面的截止设置为尽可能大,以消除客户端需要执行其他请求的可能性。

关于rest - 分页 REST API : How to select amount of data returned?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53125088/

相关文章:

Java REST Web 服务 404 错误

json - API的错误代码模式

node.js - 用户重新排序资源的 RESTful 解决方案

java - 如何使用带有内容的 spring boot Controller 下载 csv 文件?

java - KeyCloak - 以编程方式创建领域/用户/组?

java - 带有请求参数和内容正文的 Web 请求

java - 重命名所有 JSON 键 - Java - Jackson - spring boot

java - 通过 post 请求发送 post 属性和 xml 数据?

rest - 节流或限制 Kotlin CoRoutine 计数

spring - 使用与 Spring MVC 的内容协商进行 REST API 版本控制