Учитывая список имен пользователей и следующий запрос к 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-способ добиться результата?



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Для этого нет способа reactive - реагировать не на шаблоны склеенных строк.
Ваш ожидаемый запрос построен неверным способом graphQL. Это может сработать, но вы не должны так думать - когда вам нужен массив - просто попросите массив. Если вам действительно нужна такая структура, сделайте это (преобразование) после обработки «нормального» массива - это вопрос однострочного .filter() fn. Не ждите такого (странного) формата (поведения) от универсального ответа.
Прочтите соответствующие ответы для это и это.
Apollo может пакетировать даже вызовы отдельных запросов.
Нет, ожидаемый запрос записан в правом графе. QL. Это псевдоним ответа для каждого имени пользователя.
«Это может сработать, но не стоит так думать» - я не писал, что это неправильно - ЯГНИ - не усложняйте простые вещи
Хорошо, поддержано. Как я могу запросить массив, если API просто не предоставляет этого для этого API? Он просто берет одно имя пользователя и ответы с «запрошенными» данными для «одного имени пользователя»
Вы должны написать это в заголовке / вопросе раньше. Не твое API? Вы читали о дозирование? Просто отобразите список элементов, каждый с собственным запросом - он должен работать без дополнительных усилий, если сервер поддерживает пакетную обработку - если не задать новый, более подробный вопрос.
изменения, внесенные в вопрос
Это ничего не меняет;) [API ограничен в бесплатной версии] - используйте отдельный пользовательский компонент (каждый со своим запросом) для рендеринга своих репозиториев (или для сохранения в массиве). Поиск странного обходного пути не стоит усилий.
отсутствует ссылка
Запрос верен с манерами graphQL. Пожалуйста, обратитесь к здесь для другого формата запроса. Это сделано для того, чтобы запросы можно было отделить от сценария по файлам .graphql || .gql.