我知道如何通过API端点对数据分页。因此,消费者可以发送可选参数,如skip
和take
,后端响应所需的数据。
但是客户端如何知道数据的总量,以便它可以显示用户可以点击的n个页面?
- 让后端端点在获取请求中返回额外的信息,如
.
{
"data": [], // contains fetched items
"total": 123 // maximum items in database
}
是否后端提供等效端点(相同的请求有效载荷),但不返回数据,而是总量?所以客户端必须首先使用这个端点。
客户端是否要求n+ 1项,所以如果用户期望每页5项,后端返回6项,客户端知道将有下一页?
或者还有其他我不知道的方法吗?
是,后端端点应该提供记录的总数。理想情况下,如果后端不发送总记录计数,客户端是不可能知道记录总数的。
端点应该返回总数和数据响应。您可以进一步说明记录分页是有下一页还是上一页。如果您的端点被服务使用,这将更有用。有效载荷看起来像
{
"data": [],
"total": 120,
"hasPrevious: false //this will be false if the data returned is for the first page
"hasNext: true
}
这样,当hasNext
为true时,使用端点的服务可以继续调用获取数据