Да, любой сервис GraphQL, встроенный в шлюз федерации, должен реализовать спецификацию федерации Apollo .
Федерация использует схему службы, содержащую несколько конкретных типов, директив и расширений типов:
scalar _Any
scalar _FieldSet
union _Entity
type _Service {
sdl: String
}
extend type Query {
_entities(representations: [_Any!]!): [_Entity]!
_service: _Service!
}
directive @external on FIELD_DEFINITION
directive @requires(fields: _FieldSet!) on FIELD_DEFINITION
directive @provides(fields: _FieldSet!) on FIELD_DEFINITION
directive @key(fields: _FieldSet!) on OBJECT
directive @extends on OBJECT
Служба не обязательно должна быть реализацией GraphQL.js, но она должна реализовывать вышеуказанные дополнения к схеме, как указано в спецификации.