我正在从每次调用限制为50条记录的API中获取数据。我总共需要检索10,000条记录,因此可以通过offset参数使用分页来实现此目的。
我不太熟悉我需要使用的语法,但我想通过获取保持循环,直到单个调用返回的记录数量为<50表示最后一页。
我需要将每个调用的JSON响应附加在一起,此外还有一个最终的"计数",给我10,000
let offset = 0
fetch(`https://api.opensea.io/api/v1/assets?collection=womenandweapons&format=json&offset=${offset}&limit=50&order_direction=desc`,
{
method: 'GET',
headers: {
'Accept': 'application/json'
}
})
.then(response => response.json())
.then(data => {
let len = Object.keys(data.assets).length
console.log(len)
console.log(data.assets)
})
offset += 50
我曾经很幸运地做过这样的事情:
const main = async () => {
const url = new URL(AIRTABLE_URL);
let data = await fetcher(url, AIRTABLE_API_KEY);
storiesTotal = mapData(data.records);
while (data.offset) {
data = await fetcher(url, AIRTABLE_API_KEY, data.offset);
storiesTotal = [...storiesTotal, ...mapData(data.records)];
}
}
main();