我目前有多个运行Apollo的GraphQL服务,并创建了一个使用远程架构拼接的“网关”服务,以便为我提供单一的访问端点。
在我的网关服务中,我希望扩展远程类型以在拼接模式之间创建引用。
const linkTypeDefs = `
extend type User {
profile: Profile
}
extend type Profile {
user: User
}`;
const schema = mergeSchemas({
schemas: [userSchema, profileSchema, linkTypeDefs],
resolvers: /* Resolvers */
});
但是我似乎遇到了以下错误:
GraphQLError:无法扩展“User”类型,因为它在现有架构中不存在。
我已经仔细检查了“User”和“Profile”类型,我可以从Gateway Graphiql查询它们。
我是否需要采取任何特定步骤来扩展从远程模式合并的类型?
答案 0 :(得分:2)
我最终通过意识到userSchema
和profileSchema
都返回了一个承诺来解决这个问题。
我等待这些返回值,这解决了我的问题。