我有许多使用 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 不在我当前正在访问的服务的类路径上,我将无法执行此操作。
是否有一个好的/推荐的方法来创建不在当前项目中的控制器的链接?
引用自春季论坛