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 查询它们。

为了扩展从远程模式合并的类型,我需要采取任何特定步骤吗?

我最终通过意识到 userSchemaprofileSchema 都是 return 承诺来解决这个问题。

我等待这些 return 值,这为我解决了问题。