Если у вас есть только одна пользовательская схема, не рекомендуется использовать федерацию Apollo. Один сервер Apollo будет достаточно. Вы можете иметь один сервер, говорящий с несколькими источниками данных. Федерация Аполлона - в основном новая версия строчки. (Сшивание не рекомендуется) Сшивание схем и федерация Apollo предназначены для микро-сервисов.
Например, если вы создавали бэкэнд для электронной коммерции. Вы можете иметь сервер, работающий с запросами и мутациями, связанными с типом пользователя (логин, регистрация, информация о пользователе и т. Д. c.). У вас будут другие услуги по заказу, продуктам, запасам и т. Д. c.
Как правило, один домен (схема) для каждой услуги.
Что касается типов расширения, пример, который вы показали, не является идеально. фамилия и адрес электронной почты, вероятно, должны быть объявлены в службе пользователя.
Вы можете расширить тип пользователя в одном из следующих сценариев ios:
- Если вы ссылаетесь на тип пользователя в другом схема, например
type Order {
id:ID!
products: [Product!]!
user: User! //the user which did the order
}
2. If you want to add a field to the User schema.
For example, you might want to relate all the orders made by a certain user.
тип расширения User @key (fields: "id") {id: ID! Заказы: [Заказать!]! }
Then in your order service, you can add a resolver that returns all the orders according to user's `id`