如何有效地从具有多个页面的大型api中提取数据

时间:2019-07-17 00:36:53

标签: javascript reactjs api redux

我目前正在使用API​​创建React Redux应用程序。我的问题是我对如何有效地使用数据感到困惑,因为API有超过14470个“页面”可供浏览。我的主要目标是根据键值对在API中显示某些项目。例如,我想说我想基于某个特定的键值对(例如“ highestRating”)在API中显示类别,并希望通过API进行映射以找出具有最高评分的五个项目,我该怎么办?这样有效吗?

到目前为止,我一直在尝试使整个API可用,但是后来我陷入了当前的任务。

export const fetchHighestRating = () => async dispatch => {
  let data = [];
  let morePagesAvailable = true;
  let currentPage = 0; 
  while (morePagesAvailable) {
    currentPage++;
    const response = await api.get(
      `/api?page%5Blimit%5D=10&page%5Boffset%5D=${currentPage}`
    );
    data = [...data , response]; 
    morePagesAvailable = currentPage < 17471;
  }

  dispatch({ type: FETCH_HIGHEST, payload: data });
};

1 个答案:

答案 0 :(得分:1)

这不是JavaScript问题,它是数据库。您应该直接在数据库中运行查询以测试响应速度并决定下一步该怎么做,包括:

  • 共享
  • 索引
  • 优化数据库配置
  • ....

任何上述需要研究的有关DB类型的信息,即DB的当前状况,因此现在没有确切答案!