Obtengo datos de una API que tiene un límite de 50 registros por llamada. Hay 10,000 registros en total que necesito recuperar, así que estoy buscando usar la paginación a través del parámetro de desplazamiento para lograr esto.
No estoy muy familiarizado con la sintaxis que necesito usar, pero me gustaría seguir recorriendo la búsqueda hasta que la cantidad de registros devueltos para una sola llamada sea <50 para señalar la página final.
Necesito que se agreguen mis respuestas JSON de cada llamada, además de un 'conteo' final que me da 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 += 50He tenido algo de suerte haciendo algo como esto:
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();