Отправка запроса apollo вне пакета

У меня есть интерфейс apollo с настроенным пакетные запросы. Однако есть определенные запросы, которые не следует включать в пакет:

  • Компонент зависит от «маленькой» версии запроса на загрузку.
  • «Полный» запрос должен произойти в то же время, чтобы быть введенным в кеш для дальнейшего использования.
  • Если маленький и полный запрос отправляются в одном пакете, он не возвращается, пока не будет завершен полный, что занимает слишком много времени.

Я придумал два неидеальных решения:

  • Запустите полный запрос после завершения малого, используя onCompleted. Не идеально, потому что для скорости я бы хотел запустить два одновременно
  • Настройте две серверные конечные точки, одну с пакетной обработкой, а другую без, и используйте расколоть для направления запросов там, где это необходимо. Будет работать, но я бы хотел обойтись без дополнительной конечной точки

Любые идеи?

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

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Что такое Apollo Client и зачем он нужен?
Что такое Apollo Client и зачем он нужен?
Apollo Client - это полнофункциональный клиент GraphQL для JavaScript-приложений, который упрощает получение, управление и обновление данных в...
1
0
254
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я не эксперт в этой теме, но похоже, что опция batchKey в APLO-ссылка-пакет-http - это то, что вы ищете. Самым простым было бы, например, префикс ваших операций ключевым словом:

const link = BatchHttpLink({
  batchKey: operation =>
    operation.name && operation.name.value.startsWith('eager_') ? 'eager' : 'normal'
});

Другие вопросы по теме