我在看到 HATEOAS 和微服务如何共存时遇到了一些严重的问题。
举个例子:
假设我们有一个购物车资源。并且我们需要将产品的快照放入其中,例如产品ID,产品价格;将商品添加到购物车时的当前价格快照,可能还有其他一些值。实际用例无关紧要,只是为了对手头的问题有所了解。
当我之前一直在做 HATEOAS 时,我会在购物车资源中放置一个链接到产品的链接或链接到特定产品的模板 url。
这样,客户端仍然可以不知道资源 URL。
但是在微服务世界中,一个服务不应该知道其他服务。AFAIK。
那么他们两个怎么可能一起工作呢?
我对微服务的解释是它们永远不能链接到除了它们自己之外的任何东西,这几乎就是一个Self
链接。
我在其他地方发现了同样的问题,例如 https://groups.google.com/forum/#!topic/api-craft/YRkLFVY_zFc
使用诸如“宏服务”之类的解决方案将所有这些结合在一起。这似乎不是解决问题的干净方法。
[编辑]
我发现了一些关于这个主题的更好的信息: https ://github.com/Netflix/eureka https://github.com/RestExpress/HyperExpress
有一些工具通过链接来增强资源似乎很好,但这让我想,决定资源应该属于哪些链接的逻辑在哪里?在暴露资源的服务中?在中央服务注册表中?