我有一个返回Product
s的服务,我可以通过GraphQL Federation在返回Review
s的服务中扩展它。评审服务依赖于Product
s,这种解耦非常棒!
我还有一个订单服务,它存储(除其他外(具有productId
:的OrderItem
type OrderItem @key(fields : ["id"]) {
id: String
amount: Int
position: Int
productId: String
}
现在,我希望客户端也能够直接从productId
:引用的Product
中选择任何字段
orderItem(id: "123") {
position
amount
product {
name
price
}
}
如果我编写了一个普通的解析器来添加product
字段,我将不得不复制完整的Product
模型(并在Product
发生变化时更新订单服务(。我不想那样。我也想在这里利用联邦。
我希望订单服务扩展(从而依赖(Product
,但只知道它的id,而产品服务不能知道订单服务的任何信息。因此,这是评审服务中所见的依赖关系的反转。我不想从另一个服务将添加到模型中,我希望客户端能够消费,而我的服务不知道细节。
我以为这样会更容易,但我太盲目了,看不到我需要做什么!我找不到这样的例子、教程或任何东西。
我真的很感谢你的帮助!
愚蠢的我!事实上,和我想象的一样简单,我只是在追逐一条无关的(尽管对我来说很神秘(错误消息。
我只需要添加一个解析器,它返回我的Product
存根的一个实例(即只包含id
(。其余的都很有魅力!