gpt4 book ai didi

java - 如何在 Spring-Boot 微服务项目中实现 HATEOAS

转载 作者:行者123 更新时间:2023-11-30 08:46:22 25 4
gpt4 key购买 nike

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

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

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

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

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

其他示例包含 MongoRepository注释为 @RestResource而不是使用 Controller

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

最佳答案

如果您想安装 HATEOAS 但不想使用 spring-data-rest,您仍然可以退回到 Spring HATEOAS

它由 spring-data-rest 内部使用,使您能够创建 HATEOAS 风格的 REST API。

关于java - 如何在 Spring-Boot 微服务项目中实现 HATEOAS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32887039/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com