Graphql Apollo Federation-基于实现服务解析计算字段
我正在使用GraphQL联邦体系结构,并尝试向扩展类型添加一个新字段。 例如,假设我在远程联合模式中有一个类型: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 }
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")
}