API消费者如何知道分页的数据总量?

问题描述 投票:0回答:2

我知道如何通过 API 端点对数据进行分页。因此,消费者可以发送可选参数,如

skip
take
,后端会响应所需的数据。

但是客户端如何了解数据总量,以便显示用户可以点击的n页?

  • 后端端点是否在获取请求中返回附加信息,例如

.

{
  "data": [], // contains fetched items
  "total": 123 // maximum items in database
}
  • 后端是否提供等效的端点(相同的请求负载)但不返回数据而是返回总量?因此客户端必须首先使用此端点。

  • 客户是否要求 n + 1 个项目,因此如果用户期望每页 5 个项目并且后端返回 6 个项目,客户知道会有下一页?

或者还有其他我不知道的方法吗?

rest pagination
2个回答
1
投票

是的,后端端点应提供记录总数。理想情况下,如果后端不发送总记录数,客户端就不可能知道记录总数。


0
投票

端点应随数据响应一起返回总计数。 您可以更进一步,说明记录分页是否有下一页或上一页。如果您的端点被服务使用,这会更有用。有效负载看起来像

{
   "data": [],
   "total": 120,
   "hasPrevious: false //this will be false if the data returned is for the first page
   "hasNext: true
}

这样,使用端点的服务可以在

hasNext
为 true 时继续调用以获取数据

© www.soinside.com 2019 - 2024. All rights reserved.