У меня есть базовый запрос в 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.