【发布时间】:2020-02-27 03:34:57
【问题描述】:
调用api时需要获取所有结果。我只有100个。 我知道我必须每 100 次抵消才能获得全部。不知道总共有多少结果。 我想我应该使用“while”,直到 api 说没有更多的结果......或类似的东西......但我是 javascript 的初学者,所以我不知道把它放在哪里方便以及如何实施它。 我正在使用 Google App Scripts 在 Google 表格中插入结果。 我尝试使用“while”函数,但我不知道它是否是实现它的正确位置..以及变量是否正常。见 //Loop 注释 这是我的代码:
var APIurl = 'http://api.elit.com.ar/productos?offset=';
var offset = 0
function callAPI() {
//Access Data
var token = Utilities.base64Encode('mytoken');
var auth = {
user_id: 'myid',
token: token,}
var options = {
muteHttpExceptions: true,
method: 'POST',
payload: JSON.stringify(auth),
}
// Call API
var response = UrlFetchApp.fetch(APIurl, options);
//Parse response
var json= response.getContentText();
return JSON.parse(json)
}
function displayData(){
var data = callAPI();
var results = data["resultado"];
var output = []
results.forEach(function(elem,i) {
output.push([elem["cod_alfa"],elem["detalle"],elem["precio"]]);
});
//Loop
while (results !== null){
callAPI(APIurl + offset + 100);
};
//Clear previous content
var ss = SpreadsheetApp.openByUrl('mygooglesheeturl').getSheetByName('sheetname');
ss.getRange(1,1,500,3).clearContent();
//Insert new data in sheet
var len = output.length;
ss.getRange(1,1,len,3).setValues(output);
Logger.log(output);
}
【问题讨论】:
-
您有 API 文档的链接吗?它应该说如何进行分页。
-
它可能在有效载荷中。
-
@Barman 这是链接drive.google.com/open?id=15qwCNqWuW1Etl_z4ML4i0Y6Bga5UH2rB 是西班牙语的PDF,如果您需要翻译请问我。它说分页是通过在 url 末尾写“?offset = [number]”来完成的。所以我必须找到一种方法在代码中实现它,使其每 100 个结果自动分页,然后将它们全部打印在谷歌表中。或者按 100 x 100 打印,直到完成所有结果。
-
我不会说西班牙语。 :(
-
查看标题为 Paginación 的部分
标签: javascript api while-loop pagination offset