Как уменьшить количество запросов с мутациями GraphQL? - PullRequest
0 голосов
/ 03 сентября 2018

Я хочу уменьшить количество запросов к серверу graphql. У меня есть объекты в массиве, как

 [{name: "gokhan", age: 20}, ...];

Я использую graphql мутацию, чтобы добавить каждый элемент массива.

Если в массиве 50 элементов, мне нужно отправить 50 запросов , чтобы добавить все данные. Есть ли способ уменьшить количество запросов?

1 Ответ

0 голосов
/ 03 сентября 2018

Для решения этой проблемы есть два основных варианта:

Вариант 1 (предпочтительно): добавить новую мутацию в схему GraphQL, которая обрабатывает GraphQLList этих входных объектов. То, как вы это сделаете, изменится в зависимости от того, какой сервер GraphQL вы используете (в PostGraphile вы бы использовали пользовательскую мутацию или расширение схемы ); но язык определения схемы может выглядеть так:

input CreateManyPeopleInput {
  people: [CreatePersonInput!]!
}

type CreateManyPeoplePayload {
  createdPeople: [Person!]
}

extend type Mutation {
  createManyPeople(input: CreateManyPeopleInput): CreateManyPeoplePayload
}

Вариант 2: включить «пакетирование запросов» . Для этого вам понадобится и сервер, и клиент, поддерживающий пакетирование запросов GraphQL. По сути, это позволяет отправлять несколько запросов GraphQL за один запрос и получать все ответы за один ответ. Это не требует каких-либо изменений в вашей схеме GraphQL, но оно не будет таким эффективным, и типичные реализации позволяют группировать только ~ 10 запросов в один запрос, поэтому ваши 50 запросов могут по-прежнему требовать 5 запросов.

...