【问题标题】:How to handle child objects extension in Apollo Federation如何处理 Apollo Federation 中的子对象扩展
【发布时间】:2022-12-18 06:55:20
【问题描述】:
服务一:
type A {
id: ID!
embeddedMetaData: MetaData
}
type MetaData{
fieldA: String
}
服务乙:
type A @key(fields: "id") {
id: ID! @external
#I want to extend and resolve a new field into MetaData type without overriding
}
如何在不覆盖任何其他字段并将其他字段的解析保留在 A 服务中的情况下扩展嵌入式对象?
【问题讨论】:
标签:
graphql
apollo-federation
【解决方案1】:
您可以通过首先使类型 A 可扩展来扩展服务 B 中的类型 A:
服务A
type A @key(fields: "id") {
id: ID!
embeddedMetaData: MetaData
}
type MetaData{
fieldA: String
}
类型 A 现在是一个实体。
您可以在类型 A 上添加新字段,这些字段将由服务 B 解析,如下所示:
服务B
extend type A @key(fields: "id") {
id: ID! @external
newField: String
}