当我尝试通过apollo service:push --endpoint=http://localhost:4001
将我的apollo服务器应用程序推送到Apollo引擎时,出现错误消息:
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)