微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

我有一个返回 Product 的服务,我可以通过 GraphQL 联合在返回 Review 的服务中扩展该服务。审核服务依赖于 Product,这种解耦非常棒!

我还有一个订单服务,用于存储(除其他外)具有 OrderItemproductId

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,而产品服务必须不知道订单服务的任何信息。所以这是在审查服务中看到的依赖关系的倒置。我不想从另一个服务添加到模型,我希望客户端能够使用它,而我的服务不知道细节。

我认为这样应该更容易,但我太盲目了,看不到我需要做什么!我找不到示例、教程或任何可以这样做的内容

非常感谢您的帮助!

解决方法

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。