Запросы GraphQL + Apollo - PullRequest
       5

Запросы GraphQL + Apollo

0 голосов
/ 01 марта 2019

Если у меня есть приложение, созданное с использованием GraphQL + Apollo + React, мне просто интересно, есть ли у меня на странице 3 компонента, каждый из которых выполняет свой запрос, означает ли это, что от клиента к клиенту будет сделано 3 запроса?сервер и 3 будут возвращены?Потерял немного, как это работает, когда я собираю GraphQL, сжимает вызовы API в 1 запрос, но как это работает в вышеописанном сценарии с точки зрения запросов от клиента к серверу, а затем от сервера к клиенту?

1 Ответ

0 голосов
/ 01 марта 2019

Из документов :

Дедупликация запросов может помочь уменьшить количество запросов, отправляемых по сети.Он включен по умолчанию, но его можно отключить, передавая queryDeduplication: false в контекст каждого запроса или используя ключ defaultOptions при настройке клиента Apollo.Если этот параметр включен, дедупликация запроса происходит до того, как запрос попадает на сетевой уровень.Дедупликация запросов может быть полезна, если многие компоненты отображают одни и те же данные, но вы не хотите получать эти данные с сервера много раз.Это работает, сравнивая запрос со всеми запросами в настоящее время в полете.Если в данный момент выполняется запрос с идентичным запросом, новый запрос будет сопоставлен с тем же обещанием и разрешен при возврате текущего запроса в полете.

Другими словами, если вы этого не сделаетеявно указав queryDeduplication равным false, Apollo будет пропускать отправку запроса, если он соответствует каким-либо запросам в полете.

В то время как GraphQL предоставляет возможность отправлять несколько запросов в рамках одного запроса (и Apollo поддерживает эту возможность), вы должны составить такой запрос - GraphQL не сделает это автоматически.Чтобы пакетировать несколько запросов в один запрос с использованием Apollo, вы должны использовать apollo-link-batch-http .

...