我正在使用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和__typename,其他什么也不接收。你知道如何接收"id“和其他必要的字段吗?
非常感谢!
发布于 2020-11-20 00:01:08
所以我弄清楚了,我需要的是在扩展类型上添加必要的字段,并用"@ external“指令标记它们,并在计算字段中添加带有外部字段的"@requires”指令。
在我的示例中,解决方案是:(可以理解的是,联邦外部模式没有改变。)
extend type Book @key(fields: "id") {
id: ID! @external
authorFirstName: String @external
authorLastName: String @external
authorFullName: String @requires(fields: "authorFirstName authorLastName")
}解析器停留在我上面提到的位置,仅此而已。
https://stackoverflow.com/questions/64915363
复制相似问题