我有许多使用 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 不在我当前正在访问的服务的类路径上,我将无法执行此操作。
是否有一种好的/推荐的方法来创建指向当前项目中不存在的 Controller 的链接?
引用自 spring forums
最佳答案
也许这比您希望的要复杂一些,但正如前面提到的 here ,这正是Eureka是为了。它还与新 Spring Cloud 有很好的集成。项目。
关于spring - HATEOAS微服务的跨服务链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26854986/