Контекст
Сегодня у меня есть простой сшивающий сервер GraphQL, который объединяет два приложения graphql в одну конечную точку graphql.
КАК ЕСТЬ
Он работает, анализируя каждую службу (приложение 1 и приложение 2) и создавая ApolloLink, назначающий URL-адрес хоста каждому приложению с помощью apollo-upload-client и apollo-link-http.
После этого я объединяю обе схемы, используя mergeSchemas из библиотеки graphql-tools.
Проблема
Теперь мне нужно использовать другую службу, которая равна приложению 1, но она использует другую базу данных, следовательно, другой URL-адрес, но когда я создаю экземпляр apollo-ссылки приложение 1 с использованием другого хоста, mergeSchemas игнорирует ее, и окончательная сшитая схема продолжается в исходном состоянии .
Как использовать одну и ту же схему с разными URL-адресами?
БЫТЬ
Я хочу сшить 2 похожие схемы, используя разные URL-адреса

ОБНОВИТЬ
Я создавал схемы несколько раз, используя разные URL-адреса для каждой из них, но это дало мне дубликаты схем. Whitch решает мою проблему, но я думаю, что есть лучшие решения, например, для использования той же схемы и переключения хостов с помощью заголовка.
Есть ли лучшее решение, чтобы сохранить только две схемы?
@ DoğancanArabacı, нет, потому что у меня приложение 1 работает в разных средах с разными данными, и иногда из-за моего сшивания я хочу получить доступ к app1 в europe.service1.com/graphql, а иногда и из asia.service1.com/graphql.
в этом случае существует бизнес-логика для доступа к другому источнику данных. Что не является частью ваших схем gql, отсюда и проблема. В этом случае вы можете различать только параметр, заголовок или схему. Надеюсь, кто-то ответит лучшим решением: D





Если нет параметра / идентификатора для переключения между одинаковыми схемами, в чем смысл сшивания? Разве это не стало бы проблемой балансировки нагрузки?