我知道如何通过 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 时继续调用以获取数据