Пропуск распознавателя для запроса

У меня есть базовый запрос в GraphQL, настроенный следующим образом:

type Article {
  title: String
  // more primitives, not important though
}

type News {
  sourceOne: [Article]
  sourceTwo: [Article]
}

type Query {
  news: News
}

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

Есть ли способ пропустить преобразователь новостей? Прямо сейчас я определил его как news: () => ({}), потому что если его отключить, возвращается нулевое поле.

Мой вопрос: могу ли я пропустить родительский преобразователь и по-прежнему вызывать дочерние преобразователи? Это ужасный способ настроить несколько источников новостных статей? Я относительно новичок в GraphQL, поэтому я хотел бы услышать лучший способ решить эту проблему.

Я использую NodeJS и ApolloServer.

Этот вопрос в той или иной форме уже задавали несколько раз. См. здесь, здесь и здесь. Короткий ответ: такой подход нарушает соглашение, и я бы предостерег от него. Невозможно сделать то, что вы пытаетесь сделать, не возвращая пустой объект в преобразователе для news.

Daniel Rearden 14.02.2019 04:30

Вы очень помогли, спасибо!

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

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