java - Spring HATEOAS 与 Spring Data Rest

标签 java spring spring-data-rest hateoas spring-hateoas

问题是,Spring HATEOAS 与 Spring Data Rest 有什么区别?

我觉得两者都可以做同样的事情,而且 Spring Data Rest(作为 Spring Data 的一部分)似乎更有活力。

https://github.com/spring-projects/spring-hateoas https://github.com/spring-projects/spring-data-rest

您什么时候会使用其中一种?

最佳答案

Spring HATEOAS 提供通用抽象(表示模型、Link 类、用于构建指向 Spring MVC Controller 的链接的 API 等)以简化使用 Spring MVC 构建超媒体驱动的 REST API。因此,您可以将它与 Spring MVC 一起使用来手动构建这些服务。

Spring Data REST 使用 Spring HATEOAS 自动为 Spring Data 存储库管理的实体公开资源,并利用超媒体方面进行分页、链接实体等。因此它涵盖了基本内容的 80% 用例,并允许您有选择地添加稍后使用手动实现的 Controller 进行更复杂的过程。

要了解这一点,请随时查看 Spring RESTBucks示例项目。 Order 实例的处理完全由 Spring Data REST 完成(通过一些小的调整来实现业务约束)。然后手动实现整个支付逻辑,因为该过程不属于 CRUD 类别,因为我们实际上需要实现某些步骤和协议(protocol)来完成订单。同样,代码是 here ,可以在 speakerdeck.com 找到带有一些附加视觉效果的幻灯片。 .

关于java - Spring HATEOAS 与 Spring Data Rest,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19514131/

相关文章:

java - 在这种情况下如何使用GuavaOptional

java - 使用 Gradle Docker 容器运行 Gretty 项目

java - 如何在XML bean配置中继承代理对象

java - 无法使用 Spring 向 RabbitMQ 发送消息

java - 无法准备声明;嵌套异常是 org.hibernate.exception.JDBCConnectionException : could not prepare statement

java - Spring 数据休息 : Detected multiple association links with same relation type

java - 使用maven同时启动两个spring boot应用程序

java - 使用 ImageIO.write 将 BufferedImage 保存为 PNG 文件后,颜色发生奇怪变化

rest - 在 Spring data rest 中,可以通过 POST/parent/{parentId}/nested 将嵌套的@OneToMany 对象添加到父级?

java - 无法使用 RestTemplate 和 Spring Data REST 发布具有关系的新实体