# 分页

> 用游标分页遍历 Shoplazza REST API 的大结果集：游标怎么工作、比 offset 分页好在哪、如何逐页取数。

## Cursor 分页

**Cursor 分页**（也称为键集分页）是一种通过使用稳定指针而非数字偏移量来遍历大型数据集的高效方法。与传统的 offset/limit 分页相比，这种方法具有显著的性能优势，尤其适用于大型数据集、频繁更新的内容和有序结果。

在 Shoplazza 的 API 中，当处理返回多个对象的 endpoint 时，您将收到一个 `cursor` 值，它作为您在结果集中位置的书签，同时指示如何获取下一批结果。`has_more` 布尔值明确表示是否还有更多结果可用。

以下是一个简单示例：

假设您通过 API endpoint 获取用户列表。第一次 API 调用可能返回如下响应：

```json
{
  "data": [
    {
      "id": 1, 
      "name": "Alice"
    },
    {
      "id": 2, 
      "name": "Bob"
    },
    ...
  ],
  "cursor": "abc123",
  "has_more": true
}
```

要获取下一批结果，您需要使用 cursor 值（本例中为"abc123"）。

如果您后续导航到另一页并收到如下响应：

```json
{
  "data": [
    {
      "id": 101, 
      "name": "Zack"
    },
    {
      "id": 102, 
      "name": "Zoe"
    },
    ...
  ],
  "cursor": "def456"
  "has_more": true
}
```

使用这些 cursor 时，通常将其作为查询参数传入 API 请求。例如：

* 获取第一批结果：GET /users
* 获取第二批结果：GET /users?cursor=abc123
* 获取第三批结果：GET /users?cursor=def456

这只是一个概念性示例，具体细节会因 API 实现而有所不同。请始终参阅 API 文档了解确切的使用方法。
