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

问题描述 投票:0回答:2

我从限制为 200 条记录的 API 获取记录作为 JSON 对象。我需要获取 800 到 1200 条记录,具体取决于日期。

这种(下面)的工作除了,出于显而易见的原因,它在每次迭代中获取相同的 200 条记录。我最终得到一个包含 1200 条记录的 JSON 对象,但记录 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);
javascript loops counter
2个回答
2
投票

您需要使用偏移量或分页参数(或任何类似参数)来抵消您获得的结果。

执行此操作的确切方法取决于您使用的 API。例如,Twitter 为您提供了一个 pagiantion 令牌,而其他人可能会公开一个查询参数来抵消结果。


0
投票

根据 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")
`` 
© www.soinside.com 2019 - 2024. All rights reserved.