HATEOAS微服务的跨服务链接

kea*_*gik 10 spring hateoas spring-hateoas spring-boot microservices

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

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

/users/{userid}
Run Code Online (Sandbox Code Playgroud)

用户日历服务:代码:

/users/{userid}/appointments
/users/{userid}/appointments/{appointmentid}
Run Code Online (Sandbox Code Playgroud)

用户消息服务:代码:

/users/{userid}/messages
/users/{userid}/messages/{messageid}
Run Code Online (Sandbox Code Playgroud)

为了通过API实现这一点,最好是从用户资源到其约会和消息的链接.同样,从这些资源返回链接会很不错.当我有一个包含类路径上的所有内容的API时,这是非常可行的,我可以编写如下代码:

码:

user.add(linkTo(methodOn(CalendarController.class).appointments(user.getKey())).withRel("appointments"))
Run Code Online (Sandbox Code Playgroud)

但是,如果CalendarController不在我正在服务的服务的类路径上,我就无法做到这一点.

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

春季论坛引用

bvu*_*laj 2

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