Требуется несколько серверов ApolloServer для подключения шлюза к REST API?
Я создаю сервис шлюза graphql, который объединяет несколько сервисов в один граф, используя Apollo / Node / Express и следуя модели Apollo Federation. Изначально большинство служб, к которым я буду подключаться, являются службами REST.
Во всех примерах, которые я нахожу (например, здесь ), я вижу, что проект шлюза запускает несколько экземпляров ApolloServer, по одному для каждой службы REST плюс еще один для самого шлюза, и запускает их все с использованием пакета, например, одновременно . В основном проект шлюза запускает n + 1 ApolloServers. Мне кажется странным, что все эти серверы работают, но я новичок во всей этой экосистеме.
Я не понимаю, сделано ли это только для демонстрационных целей, или это также то, как это реализовано и развернуто в реальном мире?
1 ответ
Я надеюсь, что это были всего лишь примеры, а не ожидаемый образец.
Если вам нужно несколько сервисов GraphQL, каждый из них будет обслуживаться как отдельное приложение Domain Graph, как отдельный проект. Затем дополнительная служба (шлюз) будет использовать все эти приложения и предоставлять единый унифицированный API GraphQL.