Graphql Apollo Federation-基于实现服务解析计算字段

Graphql Apollo Federation-基于实现服务解析计算字段,graphql,apollo-server,apollo-federation,Graphql,Apollo Server,Apollo Federation,我正在使用GraphQL联邦体系结构,并尝试向扩展类型添加一个新字段。 例如,假设我在远程联合模式中有一个类型: type Book { id: ID! authorFirstName: String authorLastName: String } 我想根据它的数据扩展此类型,例如: extend type Book @key(fields: "id") { id: ID! @external authorFullName: String }

我正在使用GraphQL联邦体系结构,并尝试向扩展类型添加一个新字段。 例如,假设我在远程联合模式中有一个类型:

type Book {
   id: ID!
   authorFirstName: String
   authorLastName: String
}
我想根据它的数据扩展此类型,例如:

extend type Book @key(fields: "id") {
   id: ID! @external
   authorFullName: String
}
在解析器中,我将写下:

Book: {
    authorFullName: async (parent) => {
       return `${parent.authorFirstName} ${parent.authorLastName}`
    }
}
但不幸的是,它不起作用。 扩展模式只接收ID和_u类型名,仅此而已。 您知道我如何不仅接收“id”,还接收其他必要字段吗


非常感谢

所以我找到了答案,我需要的是在扩展类型上添加必要的字段,并用“@external”指令标记它们,在computed字段中用外部字段添加“@requires”指令

在我的示例中,解决方案是:(可以理解,联邦外部模式没有改变。)


解析程序保持我上面提到的状态,就是这样。

所以我找到了它,我需要的是在扩展类型上添加必要的字段,并用“@external”指令标记它们,在computed字段中用外部字段添加“@requires”指令

在我的示例中,解决方案是:(可以理解,联邦外部模式没有改变。)

分解器保持如我上面提到的那样,就是这样

extend type Book @key(fields: "id") {
   id: ID! @external
   authorFirstName: String @external
   authorLastName: String @external
   authorFullName: String @requires(fields: "authorFirstName authorLastName")
}