有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何在springbootmicroservices项目中实现HATEOAS

最近,我一直在尝试使用JavaSpring Boot框架构建微服务。我目前有一个可运行的微服务系统,它有多种资源(它们都有自己的独立服务),例如:图书服务和评论服务。 每个服务都有自己的RestController,并使用MongoRepository与其数据库交互

应用程序的最终用户(web客户端)不会与这些独立服务本身通信,而是与它们上面的API通信

此API调用book and review服务,合并数据并将其返回给客户端。请注意,所有通信都使用ResponseEntity<T>T可以是BookReviewIterable<Book>等)

但在阅读了一段时间后,我了解了HATEOAS,我想在我的微服务设置中使用它。现在我的问题是,实现这一点的最佳方式是什么

我发现的一些例子扩展了实体类(在我的例子中是BookEntity或带有Spring的ResourceSupport类的Review实体)。但是这会导致错误,因为我的实体有一个ID参数,并且getId()方法与ResourceSupport类的getId()方法冲突

其他示例包含用@RestResource注释的MongoRepository,而不是使用控制器

所以我的问题是,在这种情况下,什么是实现HATEOAS的最佳方式?例如,当图书服务添加链接(HATEOAS方式)时,上面的API如何更改这些链接?因为最终用户只会调用此API,而API只会处理这些请求并将其委托给必要的子服务


共 (1) 个答案

  1. # 1 楼答案

    如果您想让HATEOAS就位,但不想使用spring数据rest,那么仍然可以使用Spring HATEOAS

    它由spring data rest内部使用,并使您能够创建一个HATEOAS样式的rest API