GraphQL, как справиться с подключением к сотням таблиц - PullRequest
0 голосов
/ 07 февраля 2019

Мы внедряем GraphQL и имеем сотни таблиц базы данных, из которых нам нужно будет получить данные.

Мы хотим управлять нашим API таким образом, чтобы его было легко перебирать, а данные разбивать на логические группы.

Есть ли способ реализовать что-то вроде этого:

Group1> Queries
        Mutations
        Subscriptions
Group2> Queries
        Mutations
        Subscriptions
...

Или нам нужно будет создавать отдельные конечные точки для каждой группы данных GraphQL?

1 Ответ

0 голосов
/ 08 февраля 2019

Если это просто вопрос эстетики, я бы не стал беспокоиться о количестве полей в типах Query или Mutation.Независимо от того, используют ли ваши клиентские команды GraphiQL и GraphQL Playground для составления своих запросов (и они действительно должны использовать один из этих инструментов), обе имеют функции автозаполнения, которые упрощают выборопределенное поле из списка сотен.

Возможно, вы работаете с определенными группами клиентов, которые имеют особые потребности в отношении данных, которые им видны, или в отношении типов мутаций, которые они могут выполнятьосновные данные.В этих случаях может иметь смысл иметь отдельные конечные точки с отдельными схемами, каждая из которых ограничена тем, что может видеть и делать конкретная группа клиентов.Если вы используете Apollo, вы можете даже начать с базовой схемы, а затем использовать преобразования схемы .Однако вам, вероятно, не следует создавать отдельные конечные точки, если конкретный клиент все равно будет делать запросы к каждой конечной точке - это накладывает чрезмерное бремя на клиента.

Конечно, вы можете просто вкладыватьполя для каждого корневого типа внутри других типов.Например:

type Query {
  group1: Group1
  group2: Group2
}

type Group1 {
  foo: Foo
  allFoos: [Foo!]!
  # other fields
}

type Group2 {
  bar: Bar
  allBars: [Bar!]!
  # other fields
}

Это прекрасно для вашего типа запроса, хотя я бы предостерегал против этого типа паттернов для мутаций .Конечно, если вы понимаете последствия, это может быть правильным решением для вашей команды.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...