1

我有一个返回Products 的服务,我可以通过 GraphQL Federation 在返回Reviews 的服务中扩展它。审查服务取决于Products,这种解耦简直太棒了!

我还有一个订单服务,它存储(除其他外)OrderItem具有productId

type OrderItem @key(fields : ["id"]) {
    id: String
    amount: Int
    position: Int
    productId: String
}

现在我希望客户端也能够直接从Product被引用的字段中选择任何字段productId

orderItem(id: "123") {
    position
    amount
    product {
        name
        price
    }
}

如果我编写了一个普通的解析器来添加该product字段,我将不得不复制完整的Product模型(并在更改时更新订单服务Product)。我不想那样。我也想在这里利用联邦。

我希望订单服务扩展(并因此依赖)Product,但只知道它的 id,而产品服务必须不知道任何关于订单服务的信息。所以这是在审查服务中看到的依赖关系的反转。我不想从另一个服务添加到模型中,我希望客户端能够使用它,而我的服务不知道细节。

我认为这种方式应该更容易,但我太盲目了,看不到我需要做什么!我找不到这样的例子或教程或任何东西。

我将衷心感谢您的帮助!

4

1 回答 1

0

愚蠢的我!它实际上就像我想象那样简单,我一直在追逐一个不相关的(尽管对我来说很神秘)错误消息。

我只需要添加一个解析器,它返回我的Product存根实例(即仅包含id)。其余的就像一个魅力!

于 2021-05-09T09:24:06.933 回答