Когда я пытаюсь перенести приложение apollo-server на Apollo Engine через apollo service:push --endpoint=http://localhost:4001
, я получаю сообщение об ошибке: Uploading service to Engine → Unknown directive "key".
Что я делаю не так?
В настоящее время я настраиваю бэкэнд-проектс кучей микросервисов, и я хочу использовать новую функцию управляемой федерации Apollos, в которой схема graphql каждой микросервисной службы передается в диспетчер графов Apollo и объединяется сервером шлюза apollo.
Моя схема выглядит следующим образом:
extend type Query {
me: User
}
type User @key(fields: "id") {
id: ID!
name: String
username: String
}
Это мои средства распознавания:
const resolvers = {
Query: {
me() {
return users[0];
}
},
User: {
__resolveReference(object) {
return users.find(user => user.id === object.id);
}
}
};
И это настройки моего сервера:
const server = new ApolloServer({
schema: buildFederatedSchema([{ typeDefs, resolvers }])
});
server.listen({ port: 4001 }).then(({ url }) => {
console.log(`Server ready at ${url}`);
});
apollo.config.js
module.exports = {
service: {
localSchemaFile: "./src/graphql/schema.graphql"
}
};
Вот полное сообщение об ошибке:
npx apollo service:push --endpoint=http://localhost:4001
√ Loading Apollo Project
× Uploading service to Engine
→ Unknown directive "key".
GraphQLSchemaValidationError: Unknown directive "key".
at Object.buildSchemaFromSDL (C:/Users/Juliu/AppData/Roaming/npm-cache/_npx/13168/node_modules/apollo/node_modules/apollo-graphql/lib/schema/buildSchemaFromSDL.js:38:15)
at FileSchemaProvider.resolveSchema (C:/Users/Juliu/AppData/Roaming/npm-cache/_npx/13168/node_modules/apollo/node_modules/apollo-language-server/lib/providers/schema/file.js:24:40)
at GraphQLServiceProject.resolveSchema (C:/Users/Juliu/AppData/Roaming/npm-cache/_npx/13168/node_modules/apollo/node_modules/apollo-language-server/lib/project/base.js:66:36)
at Task.task (C:/Users/Juliu/AppData/Roaming/npm-cache/_npx/13168/node_modules/apollo/lib/commands/service/push.js:70:50)