Apollo:从远程模式扩展类型
Apollo: Extending type from remote schema
我目前有多个 GraphQL 服务 运行 Apollo 并创建了一个 "Gateway" 使用远程模式拼接的服务,以便为我提供一个访问端点。
在我的网关服务中,我希望扩展远程类型以在拼接模式之间创建引用。
const linkTypeDefs = `
extend type User {
profile: Profile
}
extend type Profile {
user: User
}`;
const schema = mergeSchemas({
schemas: [userSchema, profileSchema, linkTypeDefs],
resolvers: /* Resolvers */
});
但是我似乎遇到了以下错误:
GraphQLError: Cannot extend type "User" because it does not exist in the existing schema.
我已经仔细检查过 "User" 和 "Profile" 类型存在,我可以从 Gateway Graphiql 查询它们。
为了扩展从远程模式合并的类型,我需要采取任何特定步骤吗?
我最终通过意识到 userSchema
和 profileSchema
都是 return 承诺来解决这个问题。
我等待这些 return 值,这为我解决了问题。
我目前有多个 GraphQL 服务 运行 Apollo 并创建了一个 "Gateway" 使用远程模式拼接的服务,以便为我提供一个访问端点。
在我的网关服务中,我希望扩展远程类型以在拼接模式之间创建引用。
const linkTypeDefs = `
extend type User {
profile: Profile
}
extend type Profile {
user: User
}`;
const schema = mergeSchemas({
schemas: [userSchema, profileSchema, linkTypeDefs],
resolvers: /* Resolvers */
});
但是我似乎遇到了以下错误:
GraphQLError: Cannot extend type "User" because it does not exist in the existing schema.
我已经仔细检查过 "User" 和 "Profile" 类型存在,我可以从 Gateway Graphiql 查询它们。
为了扩展从远程模式合并的类型,我需要采取任何特定步骤吗?
我最终通过意识到 userSchema
和 profileSchema
都是 return 承诺来解决这个问题。
我等待这些 return 值,这为我解决了问题。