Разрешить пакетный запрос в одном вызове API на сервере apollo graphql - PullRequest
1 голос
/ 13 мая 2019

В настоящее время я использую пакет аналогичных вызовов на клиенте apollo graphql.Таким образом, он отправляет один вызов на apollo-server, если тот же запрос graphql запущен, но с другими параметрами.

Но на стороне сервера graphql я хочу оптимизировать так, чтобы и один вызов выполнялся для одновременного разрешения всех запросов graphql.

Сервер Graphql выполняет вызов к серверу API, но для каждого отдельного пакетного вызова не разрешает все запросы сразу.

Я использовал data-loader для использования пакетной обработки, но отправляет только один запрос.

  genUserInfoDataLoader() {
    return new DataLoader(async (arr) => {
      logger.info(`---> UserInfoDataLoader Making calls for:${JSON.stringify(arr)}`);
      const leagueId = arr[0].split(':')[1];
      const UserIds = arr.map(a => a.split(':')[0]);
      const userInfoMap = await this.post('endpoint/user-info ', {
        userIds: UserIds.join(','),
        tourId,
      });

      return UserIds
        .map(
         userId => (userInfoMap[userId] ? userInfoMap[userId] : [])
        );
    });
  }
...