Конфликт общего типа Apollo graphql

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

Но сейчас я объединяю три схемы, и у меня есть PageInfo и Edge в локальной схеме и еще одна удаленная схема. Типы Edge и PageInfo совершенно разные на обоих, и мне просто нужно использовать локальные PageInfo и Edge на локальной схеме и удаленные на удаленных.

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

https://www.advancedgraphql.com/content/schema-stitching/ex1

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

Ответы 1

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

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

Если вы объединяете API, которые не контролируете, вам потребуется другое решение. Простое решение может состоять в том, чтобы использовать что-то вроде Привязка GraphQL и реплицировать нужные части в вашей схеме, а затем делегировать API ниже. Преимущество этого заключается в том, что схема твой не изменяется случайным образом и не ломается во время выполнения при изменении стороннего API. Существует также множество инструментов, которые позволяют, например, импортировать типы в ваш файл схемы из внешнего файла схемы.

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