React-Apollo: вызовы запросов для списка переменных

Учитывая список имен пользователей и следующий запрос к GITHUB API:-

query.gql:
query USER_QUERY($username:String!){
            user(login: $username){
                  name
                repositories(isFork:false){
                totalCount
              }
            }
          }

Я хочу создать composite query для каждого username.

Пример:

Допустим, это список имен пользователей

array usernames=["Sheldon","Leonard","Raj","Holowitz"]

Ожидаемый запрос:

 {
  sheldon:user(login: "sheldon") {
    name
    repositories(isFork: false) {
      totalCount
    }
  }
  leonard:user(login: "leonard") {
    name
    repositories(isFork: false) {
      totalCount
    }
  }
  raj:user(login: "raj") {
    name
    repositories(isFork: false) {
      totalCount
    }
  }
  holowitz:user(login: "holowitz") {
    name
    repositories(isFork: false) {
      totalCount
    }
  }

Есть ли какой-то reactive-способ добиться результата?


person Jon Patrovi    schedule 03.10.2018    source источник


Ответы (1)


Для этого нет reactive способа - реакция не для шаблонов клеевой строки.

Ваш ожидаемый запрос построен неправильно с помощью graphQL. Это может сработать, но вы не должны так думать - когда вам нужен массив - просто попросите массив. Если вам действительно нужна такая структура, сделайте это (преобразование) после извлечения «нормального» массива - это вопрос однострочного .filter() fn. Не ждите такого (странного) формата (поведения) от всеобщего ответа.

Прочтите соответствующие ответы для этот и это.

Даже вызов отдельных запросов может быть сгруппирован с помощью apollo.

person xadm    schedule 05.10.2018
comment
Запрос корректен в отношении манеры graphQL. См. здесь другой формат запроса. Это позволяет отделить запросы от скрипта по файлам .graphql||.gql. - person Jon Patrovi; 05.10.2018
comment
Нет, ожидаемый запрос записывается в правильном графе QL. Это псевдоним ответа для каждого имени пользователя. - person Jon Patrovi; 07.10.2018
comment
Может сработает но не надо так думать - я не писал что это неправильно - ЯГНИ - не усложняйте простые вещи - person xadm; 07.10.2018
comment
Хорошо, прикомандирован. Как я могу запросить массив, если API просто не предоставляет это для этого API, он просто принимает одно имя пользователя и ответы с запрошенными данными для одного имени пользователя - person Jon Patrovi; 07.10.2018
comment
Вы должны были написать это в заголовке/вопросе раньше. Не ваш API? Вы читали об пакетной обработке? Просто отобразите список элементов, каждый из них со своим запросом - он должен работать без дополнительных усилий, если сервер поддерживает пакетную обработку - если нет, задайте новый, более подробный вопрос. - person xadm; 07.10.2018
comment
изменения внесены в вопрос - person Jon Patrovi; 07.10.2018
comment
Это ничего не меняет ;) [API ограничен в бесплатной версии] - используйте отдельный пользовательский компонент (каждый со своим запросом) для отображения своих репозиториев (или для сохранения в массиве). Создание странного обходного пути не стоит усилий. - person xadm; 08.10.2018
comment
отсутствует ссылка - person xadm; 08.10.2018