Apollo:从远程模式扩展类型

Gar*_*nay 5 apollo graphql graphql-js react-apollo apollo-client

我目前有多个运行Apollo的GraphQL服务,并创建了一个使用远程模式拼接的"网关"服务,以便为我提供一个访问端点.

在我的网关服务中,我希望扩展远程类型以在拼接模式之间创建引用.

const linkTypeDefs = `
    extend type User {
        profile: Profile
    }

    extend type Profile {
        user: User
    }`;

const schema = mergeSchemas({
    schemas: [userSchema, profileSchema, linkTypeDefs],
    resolvers: /* Resolvers */
});
Run Code Online (Sandbox Code Playgroud)

但是我似乎得到以下错误:

GraphQLError:无法扩展"User"类型,因为它在现有模式中不存在.

我已经进行了双重检查,并且存在"用户"和"配置文件"类型,我可以从Gateway Graphiql查询它们.

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

Gar*_*nay 2

我最终通过意识到这一点解决了这个问题,userSchema并且profileSchema都返回了一个承诺。

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