代码开发/Cookbook/HTTP_Request_node
HTTP 请求节点中的分页功能#
HTTP 请求节点支持分页功能。本页面提供了一些配置示例,包括使用 HTTP 节点变量。 更多关于该节点的信息,请参考 HTTP Request。
API 差异
不同的 API 以不同方式实现分页。请查阅你所使用的 API 的文档了解详细信息。你需要弄清楚以下问题:
- API 是否在响应中提供下一页的 URL?
- 分页大小或页码是否存在 API 特定的限制?
- API 返回的数据结构是怎样的?
启用分页#
在 HTTP 请求节点中,选择 添加选项 > 分页。
使用响应中的 URL 获取下一页(通过 $response)#
如果 API 在其响应中返回了下一页的 URL:
- 将 分页模式 (Pagination Mode) 设置为 响应包含下一页 URL (Response Contains Next URL)。n8n 会显示此选项的相关参数。
- 在 下一页 URL (Next URL) 中,使用一个 表达式 来设置 URL。具体表达式取决于你的 API 返回的数据结构。例如,如果 API 在响应体中包含一个名为
next-page的字段:
1| ``` {{$response.body["next-page"]}}
---|---
## 按页码获取下一页(使用 `$pageCount`)[#](https://docs.n8n.io/code/cookbook/http-node/pagination/#get-the-next-page-by-number-using-pagecount "永久链接")
如果你使用的 API 支持通过页码指定特定页面:
1. 将 **分页模式 (Pagination Mode)** 设置为 **每次请求更新一个参数 (Update a Parameter in Each Request)**。
2. 将 **类型 (Type)** 设置为 **查询参数 (Query)**。
3. 输入查询参数的 **名称 (Name)**。这取决于你的 API,通常在其文档中有说明。例如,某些 API 使用名为 `page` 的查询参数来指定页码,因此此处 **名称** 应填写 `page`。
4. 鼠标悬停在 **值 (Value)** 上,并开启 **表达式 (Expression)** 开关。
5. 输入 `{{ $pageCount + 1 }}`
`$pageCount` 是 HTTP 请求节点已获取的页数。它从零开始。大多数 API 的分页是从 1 开始计数的(第一页是第一页)。这意味着将 `$pageCount` 加 `+1` 后,节点在第一次循环时会获取第一页,第二次循环时获取第二页,依此类推。
## 通过请求体参数进行分页[#](https://docs.n8n.io/code/cookbook/http-node/pagination/#navigate-pagination-through-body-parameters "永久链接")
如果所使用的 API 支持通过请求体(body)参数进行分页:
1. 将 HTTP 请求方法设置为 **POST**
2. 将 **分页模式(Pagination Mode)** 设置为 **在每次请求中更新一个参数**
3. 在 **类型(Type)** 参数中选择 **Body**
4. 输入请求体参数的 **名称(Name)**。这取决于你使用的 API,`page` 是常见的键名。
5. 将鼠标悬停在 **值(Value)** 上,并开启 **表达式(Expression)** 开关
6. 输入 `{{ $pageCount + 1 }}`
## 在查询参数中设置页面大小[#](https://docs.n8n.io/code/cookbook/http-node/pagination/#set-the-page-size-in-the-query "永久链接")
如果所使用的 API 支持在查询参数中设置页面大小:
1. 在主节点参数中选择 **发送查询参数(Send Query Parameters)**(这是你首次打开节点时看到的参数,而不是“选项”内的设置)
2. 输入查询参数的 **名称(Name)**。这取决于你的 API。例如,许多 API 使用名为 `limit` 的查询参数来设置页面大小,因此 **名称** 应填写为 `limit`
3. 在 **值(Value)** 中输入你希望的页面大小