GraphQL联合:如何消费,而不是扩展



我有一个返回Products的服务,我可以通过GraphQL Federation在返回Reviews的服务中扩展它。评审服务依赖于Products,这种解耦非常棒!

我还有一个订单服务,它存储(除其他外(具有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(。其余的都很有魅力!

最新更新