GraphQL эффективно выполняет тот же запрос для массива переменных

Я хочу запустить очень похожий запрос GraphQL для заданного набора входных данных. Я полагаю, что мог бы написать цикл в своем клиенте, но мне было интересно, есть ли способ использовать GraphQL, чтобы просто перебирать мой список, передавая ему массив в качестве переменной.

например, учитывая этот запрос к Github V4 API

query {
  nasa: organization(login: "nasa") {
     ...orgFields
  }
  github: organization(login: "github") {
    ...orgFields
  }
}

fragment orgFields on Organization {
  name
  url
  id
}

Есть ли способ передать массив, например orgs = ["nasa","github"], и это будет иметь тот же эффект, как если бы я написал несколько запросов с псевдонимами? Или это единственный вариант программного создания запроса и объединения строк для каждого псевдонима. Например, та же идея, как если бы я сделал что-то вроде login: "nasa" OR "github".

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Что такое Apollo Client и зачем он нужен?
Что такое Apollo Client и зачем он нужен?
Apollo Client - это полнофункциональный клиент GraphQL для JavaScript-приложений, который упрощает получение, управление и обновление данных в...
4
0
986
1

Ответы 1

Согласно документации GitHub API, вы не можете передать массив organizations, как вы объясняете.

Если GitHub не обновит свой API для его поддержки, на данный момент вам придется выбрать второй вариант:

Or is the only option to programmatically create the query and concatenate strings for each alias. E.g., the same idea as if I did something like login: "nasa" OR "github".

Спасибо. Означает ли это, что это зависит от реализации сервера, то есть в языке graphql нет ничего, что могло бы сформулировать запрос или преобразовать его?

Eric G 28.03.2019 13:45

Да, это серверная реализация.

Marco Daniel 28.03.2019 16:02

Другие вопросы по теме