API限制(200条记录)-需要javascript计数器来获取所有记录

fnatzsnv  于 2023-04-19  发布在  Java
关注(0)|答案(2)|浏览(160)

我从一个API中获取JSON对象的记录,限制为200条记录。我需要获取800到1200条记录,具体取决于日期。
这种方法(见下图)是可行的,但由于显而易见的原因,它每次迭代都会抓取相同的200条记录。我最终得到一个JSON对象,它有1200条记录,但记录1,201,401,601等都是相同的。
我觉得这里需要一个计数器,但我不知道如何实现它。任何帮助或指出正确的方向是感激的。谢谢!

const iteration = new Array(0, 1, 2, 3, 4, 5);
const dealRecords = new Array();

for (var i = 0; i < iteration.length; i++) {
  SOMECOMPANY.API.searchRecord({
    Entity: "Greeting",
    Type: "criteria",
    Query: "(Text:equals:Hay)",
  }).then(function (data) {
    dealRecords.push({ data });
  });
}
console.log(dealRecords);
mm5n2pyu

mm5n2pyu1#

您需要使用偏移量或分页参数(或任何类似参数)来偏移所获得的结果。
具体的实现方式取决于你使用的API。例如Twitter为你提供了一个pagiantion token,而其他人可能会公开一个查询参数来抵消结果。

enxuqcxy

enxuqcxy2#

根据API文档,你可以在配置对象后面插入一个页面参数。我想你不需要一个数组来循环
比如:

for (var page = 1; page < 7; page++) {
            SOMECOMPANY.API.searchRecord({ Entity: "Greeting", Type: "criteria", Query: "(Text:equals:Hay)" }, page)
               ...
        }

可能使用page.toString(),因为页面参数必须是字符串。
或者,您可以尝试更改perPage参数,只获得一个包含所有所需内容的页面。

SOMECOMPANY.API.searchRecord({ Entity: "Greeting", Type: "criteria", Query: "(Text:equals:Hay)" }, "1", "1200")
``

相关问题