【问题标题】:Cross-service linking for HATEOAS micro-servicesHATEOAS 微服务的跨服务链接
【发布时间】:2015-01-07 10:00:36
【问题描述】:

我有许多使用 Spring Boot 构建的微服务,所以为了找点乐子,我想我应该尝试向它们添加 HATEOAS 以帮助建立跨资源链接。它似乎在特定项目中工作得很好,但我想知道是否有一种跨 API 链接的好方法。例如,假设我有 3 个服务:

用户详细信息服务: 代码:

/users/{userid}

用户日历服务: 代码:

/users/{userid}/appointments
/users/{userid}/appointments/{appointmentid}

用户消息服务: 代码:

/users/{userid}/messages
/users/{userid}/messages/{messageid}

要通过 API 进行浏览,最好有从用户资源到其约会和消息的链接。同样,最好从这些资源中获得链接。当我在类路径上拥有一个包含所有内容的 API 时,这一切都是可以实现的,我可以在其中编写如下代码:

代码:

user.add(linkTo(methodOn(CalendarController.class).appointments(user.getKey())).withRel("appointments"))

但是,如果 CalendarController 不在我当前访问的服务的类路径上,我将无法执行此操作。

是否有一个好的/推荐的方法来创建当前项目中没有的控制器的链接?

引用自spring forums

【问题讨论】:

  • 我们有完全相同的问题。我们已经考虑过使用一个 JAR 来定义路径并共享它以及公开路径的资源并让 API 相互通信。这两种解决方案都有缺点。迫不及待想看到有关此的任何答案
  • 这里也一样。我们正在考虑开发我们自己的 DSL 来构建和共享链接。在我们的用例中,这些链接将被共享给一个 zookeeper 节点,然后服务可以请求指向其他资源的链接。如果 Spring HATEOAS 现在或不久的将来提供解决方案,那么最终沿着这条路走下去会很好。
  • 我想我们问的是同一件事。 stackoverflow.com/questions/27790905/…

标签: spring spring-boot hateoas spring-hateoas microservices


【解决方案1】:

也许这比您希望的要复杂一些,但正如 here 所提到的,这正是 Eureka 的用途。它还与新的Spring Cloud 项目进行了非常好的集成。

【讨论】:

    猜你喜欢
    • 2015-09-03
    • 2015-07-24
    • 2020-10-14
    • 2018-09-26
    • 2019-05-24
    • 2015-06-10
    • 2017-07-12
    • 1970-01-01
    • 2017-04-15
    相关资源
    最近更新 更多