我的项目基于 React、redux、redux-saga、es6,我尝试从这个 API 获取数据:
如您所见,此特定 API 调用显示的数据限制为每页 100 个数据,分布在 40 个页面上。
根据这个答案: http ://userforum.dhsprogram.com/index.php?t=msg&th=2086&goto=9591&S=Google 它说你可以将限制扩展到每页最多 3000 个数据。
但是,在某些情况下,我会执行超出该限制的 API 调用,这意味着我不会像这样接收所有数据:
export function fetchMetaData(countryCode: string, surveyYears: string) {
return (fetch('http://api.dhsprogram.com/rest/dhs/data/' + countryCode + ',' + surveyYears + '?returnFields=CharacteristicLabel,Indicator,IndicatorId,Value&f=json')
.then(response => response.json())
.then(json => json.Data.map(survey => survey)))
}
所以我的问题是;鉴于我知道数据的总页数,从该 API 获取所有数据的最佳方法是什么。论坛链接中的答案建议循环访问 API。但是,我找不到正确的语法用法来执行此操作。
我的想法是进行一次 api 调用以获取总页数。然后使用 redux+redux-saga 将其存储在状态中。然后做一个新的请求,发送总页数作为参数并获取这个总页数次。通过这样做,我无法弄清楚为每次迭代存储数据的语法。