以下教程演示了如何使用“后条件循环”活动,通过重复进行 HTTP 调用,直到检索到所有数据为止,来处理 API 分页。
分页指示符(例如光标、页尾标志或限制)通常包含在响应标头、响应正文中,或作为查询参数包含。
此示例检索使用OpenBreweryDB API 的工厂列表。根据 OpenBreweryDB API 规范,分页使用基于偏移量(基于页面)的参数进行处理。要对数据集进行分页,请在 HTTP 请求中包含Per_page=X&page=Y作为查询参数。
https://api.openbrewerydb.org/v1/breweries?per_page=10&page=1https://api.openbrewerydb.org/v1/breweries?per_page=10&page=1
https://api.openbrewerydb.org/v1/breweries?per_page=10&page=1
const url = new URL($input.request.url); const currentPage = Number(url.searchParams.get("page")); return { nextPage: currentPage + 1, content: $input.content}const url = new URL($input.request.url); const currentPage = Number(url.searchParams.get("page")); return { nextPage: currentPage + 1, content: $input.content}
const url = new URL($input.request.url); const currentPage = Number(url.searchParams.get("page")); return { nextPage: currentPage + 1, content: $input.content}
$input.nextPage < 5
"https://api.openbrewerydb.org/v1/breweries?per_page=10&page=" + ($input.nextPage == null ? 1 : $input.nextPage)"https://api.openbrewerydb.org/v1/breweries?per_page=10&page=" + ($input.nextPage == null ? 1 : $input.nextPage)
"https://api.openbrewerydb.org/v1/breweries?per_page=10&page=" + ($input.nextPage == null ? 1 : $input.nextPage)
$context.outputs.Do_While_1.results.flatMap(result => result.content.map(brewery => brewery.name))$context.outputs.Do_While_1.results.flatMap(result => result.content.map(brewery => brewery.name))
$context.outputs.Do_While_1.results.flatMap(result => result.content.map(brewery => brewery.name))