Apollo graphql конфликт общих типов - PullRequest
0 голосов
/ 26 июня 2019

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

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

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

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

1 Ответ

1 голос
/ 26 июня 2019

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

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

...