春季仇恨与春季数据休息

问题是,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

您何时会使用其中一个?


答案 1

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

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

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


答案 2

HATEOAS代表Hypermedia作为应用程序状态的引擎,是REST的关键点之一。基本上,关键点包括使用资源表示上的链接来映射应用程序状态的有效转换。在这种情况下,将是提供可通过链接访问的应用程序的有效下一个正确状态的服务提供商。Spring HATEOAS是Spring项目,用于帮助在您的资源中构建Hymeridia控件。这是一个与Spring MVC集成的项目,您可以将其视为Spring MVC扩展,用于构建真正的RESTFull WS,它将非常好的支持,可以将服务表单CRUD(Richardson模型中的成熟度级别为2)提高到Hypermedia感知(Richardson模型中成熟度级别为3)。另一方面,Spring Data Rest是一个非常好的项目,它使用Spring HATEOAS作为基本砖块,为您提供一个存储库层,可用作restfull ws。在proctis中,该项目有助于减少经典的boliporlent代码,以将存储库层公开为restfull端点。我们可以说,tat是这些项目的推进者,非常不同。使用Spring HATEOAS,您拥有了一个可用于任何类型的休息端点的框架,有了spring数据休息,您就有了一个Spring项目,该项目已经提供了一个端点和一个用于自定义它的框架。

我希望这些反思可以帮助您澄清两个项目之间的区别,并更好地了解如何使用其中一个项目。


推荐