Как объединить несколько корневых типов запросов по микросервисам в Ruby? - PullRequest
0 голосов
/ 19 февраля 2019

У меня есть Ruby+GraphQL проект, построенный из микро-сервисов и внешнего интерфейса, который использует ember-apollo.Я все еще изучаю все эти технологии и довольно плохо знаком с концепцией микро-сервисов.

У меня есть три модуля в моем API - Clients, Collaborators и main (которые можно увидетькак зонтик других), за исключением main, со своим собственным каталогом graphql, который содержит их соответствующие QueryType вместе с типами / определителями и schema, который находится вне этих модулей.

Поскольку schema может иметь только один query тип, я подумал о том, чтобы как-то агрегировать поля в моем другом QueryTypes таким образом, как этот с FieldCombiner в модуле main, своего рода в качестве точки входа, и используйте его в моей схеме.

Проблема с этим решением состоит в том, что он использует старый .define стиль, который будет удален в graphql 2.0, поэтому я считаю, что api * на базе класса - лучшее решение.Я довольно долго искал и не сталкивался с чем-то, что работает в этом направлении.

Что я хотел бы сделать в коде:

module OpenCompanyApi
  class Schema < GraphQL::Schema
    query Clients::Graphql::Types::Query
    query Collaborators::Graphql::Types::Query # Something like that. They're two different modules, each with their own root query type
    mutation Clients::Graphql::Types::Mutation
    mutation Collaborators::Graphql::Types::Mutation # This too
  end
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...