Как сообщить GraphQL, если я хочу разрешить поле из другого rootQuery? - PullRequest
0 голосов
/ 04 ноября 2019

Позвольте мне объяснить:

type SecondType {
  id: String
}

type FirstType {
  id: String
  secondTypes: [SecondType]
}

type Query {
  firstTypes: [FirstType]
  secondTypes: [SecondType]
}
//
const resolver = {
  Query: {
    firstTypes: fetchFirstTypes,
    secondTypes: fetchSecondTypes
  }
};

Идея состоит в том, что если есть отношения родитель-потомок между firstType и secondType, например, secondType содержит идентификатор родительского (firstType),через результат предыдущего преобразователя, secondTypes внутри запроса firstTypes может извлечь secondTypes, связанный с его родителем firstType. Я обнаружил, что распознаватель firstType ищет ключ с именем secondTypes из результата fetchFirstTypes. Но я хочу сообщить GraphQL, что ему нужно разрешить secondTypes из распознавателя Query.secondTypes. Как я могу это сделать? Может быть, есть способ написать «запасные редукторы» поля? Так что, если он не находит ключ из результата, он может искать преобразователь?

1 Ответ

1 голос
/ 04 ноября 2019

Исходя из моего понимания вашего вопроса, вам нужен распознаватель для ключа secondTypes, который присутствует в FirstType. Для этого вы можете сделать преобразователь следующим образом:

const resolver = {
  Query: {
    firstTypes: fetchFirstTypes,
    secondTypes: fetchSecondTypes
  },
  FirstType: {
      secondTypes: (parent, args, context, info) => {
          // Here you will get the parent id(FirstType) parent.id
          // From Here resolve the secondtypes data
      }
  }
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...