http://mpvideo.qpic.cn/0b784iaagaaasyaoht6kuzpvbywdapraaaya.f10002.mp4?dis_k=90004dbec5391c564de7120
今天和大家介绍下RESTful中最重要的一个概念HATEOAS。 ---- 什么是HATEOAS HATEOAS是Hypermedia as the Engine of Application State的缩写。 翻译过来就是超媒体即应用状态引擎。 HATEOAS解决什么问题 HATEOAS通过超媒体来提供客户端与服务器之间的交互。 即客户端可以通过一个简单的初始URI,并从返回值获取可以操作的其他信息。 使用HATEOAS 如果我们使用HATEOAS,这个例子会怎么样? HATEOAS实现 HATEOAS目前还只是一个guide,目前可以有各种类型的实现。
本文链接:https://blog.csdn.net/u014427391/article/details/102650252 REST风格简介 介绍HATEOAS之前先简单介绍一下REST,REST (作为应用程序状态引擎的超媒体),在资源的表达中包含了链接信息,客户端可以在链接信息中发现可以执行的操作 HATEOAS是什么? HATEOAS代表“超媒体是应用程序状态的引擎” 从前言我们已经可以清楚知道,使用HATEOAS约束是REST风格中成熟度最高的,也是官方推荐的一种方式,没使用HATEOAS的项目,服务端和客户端是耦合的 在Spring的官网,已经有提供这个项目的相关文档,链接:https://spring.io/projects/spring-hateoas SpringBoot HATEOAS SpringBoot 中也有集成HATEOAS,本博客介绍一下如何使用 工具准备: JDK8.0 Maven 3.0+构建工具 Eclipse或者IntelliJ IDEA git&gitlab 在pom.xml加上hateoas
http://mpvideo.qpic.cn/0bf2xeas6aabemam65wlqrpvdoodf64qclya.f10002.mp4?dis_k=65f06d8f6caf7c6d03cff14
简介 HATEOAS是实现REST规范的一种原则,通过遵循HATEOAS规范,可以解决我们实际代码实现的各种个问题。作为java最流行的框架Spring 当然也会不缺席HATEOAS的集成。 本文将会通过一个具体的例子来讲解如何在SpringBoot中使用HATEOAS。 我们的目标 HATEOAS规则中,返回的数据会带有链接。 <artifactId>spring-boot-starter-hateoas</artifactId> </dependency> 如果我们想要对Book进行HATEOAS的构建,那么可以构建一个类 使用HATEOAS是不是很简单? HATEOAS的意义 HATEOAS带有相应的资源链接,通过一个资源就可以得到从这个资源可以访问的其他的资源,就像是一个访问到一个页面,可以再通过这个页面去访问其他的页面一样。
这就是HATEOAS。 HATEOAS简介 REST的英文全称是REpresentational State Transfer,表示的是状态的转移。 HATEOAS指定了状态的表现形式。 超文本就是链接,在HATEOAS的规则下,所有的资源请求都是需要带上链接的,这些链接表示可以对该资源进行的下一步操作。 HATEOAS的Spring支持 人民需要什么,Spring就造什么。同样的,对于REST+HATEOAS这种优美组合,怎么能够少得了Spring的身影呢? Spring推出了Spring HATEOAS来实现这一功能。 有关Spring HATEOAS的具体内容,我们会在后面的文章中详细讲解。 总结 如果你使用的REST架构,那么配合上HATEOAS规则应该就是最好的组合。祝你成功。
要点 HATEOAS是Hypertext As The Engine Of Application State的缩写。 HATEOAS虽然不是唯一消除这些重复的方法,但作为一种架构原则,它更容易让团队找到消除重复的“套路”。 ? ---- 什么是HATOEAS HATEOAS是Hypertext As The Engine Of Application State的缩写。 而REST的发明者Roy Fielding博士更是直言HATEOAS是REST的前提, 这不是一个可选项,如果没有Hypermedia,那就不是REST。 ---- 单页应用和HATEOAS 在过去的几年里,WEB开发技术发生了很多重大的变革,其中之一就是单页应用,它们往往能带来更平滑的用户体验。
从上述 REST 成熟度模型中可以看到,使用 HATEOAS 的 REST 服务是成熟度最高的,也是推荐的做法。对于不使用 HATEOAS 的 REST 服务,客户端和服务器的实现之间是紧密耦合的。 Spring HATEOAS 如果 Web 应用基于 Spring 框架开发,那么可以直接使用 Spring 框架的子项目 HATEOAS 来开发满足 HATEOAS 约束的 Web 服务。 为了把模型对象类转换成满足 HATEOAS 要求的资源,需要添加链接信息。Spring HATEOAS 使用 org.springframework.hateoas.Link 类来表示链接。 Spring HATEOAS 在 Spring MVC 框架的基础上,允许开发人员通过简单的配置来添加 HATEOAS 约束。 本文对 REST 和 HATEOAS 的相关概念以及 Spring HATEOAS 框架的使用做了详细的介绍。
简介 HATEOAS是实现REST规范的一种原则,通过遵循HATEOAS规范,可以解决我们实际代码实现的各种个问题。作为java最流行的框架Spring 当然也会不缺席HATEOAS的集成。 本文将会通过一个具体的例子来讲解如何在SpringBoot中使用HATEOAS。 我们的目标 HATEOAS规则中,返回的数据会带有链接。 <artifactId>spring-boot-starter-hateoas</artifactId> </dependency> 如果我们想要对Book进行HATEOAS的构建,那么可以构建一个类 使用HATEOAS是不是很简单? HATEOAS的意义 HATEOAS带有相应的资源链接,通过一个资源就可以得到从这个资源可以访问的其他的资源,就像是一个访问到一个页面,可以再通过这个页面去访问其他的页面一样。
简介 SpringBoot提供了HATEOAS的便捷使用方式,前面一篇文章我们也讲了如何在SpringBoot中使用HATEOAS。 链接Links HATEOAS的一个非常重要的特征就是在resources资源中包含超媒体,而超媒体最简单的表示就是链接。 Spring HATEOAS为我们简化了封装Links的功能。 Spring HATEOAS中有一个LinkRelation类来表示。 的基础,掌握了他们基本上就掌握了Spring HATEOAS。 更多内容请参考 http://www.flydean.com/00043-springboot-hateoas-fundamentals/
简介 SpringBoot提供了HATEOAS的便捷使用方式,前面一篇文章我们也讲了如何在SpringBoot中使用HATEOAS。 链接Links HATEOAS的一个非常重要的特征就是在resources资源中包含超媒体,而超媒体最简单的表示就是链接。 Spring HATEOAS为我们简化了封装Links的功能。 Spring HATEOAS中有一个LinkRelation类来表示。 的基础,掌握了他们基本上就掌握了Spring HATEOAS。 更多内容请参考 http://www.flydean.com/00043-springboot-hateoas-fundamentals/ 最通俗的解读,最深刻的干货,最简洁的教程,众多你不知道的小技巧等你来发现
从上述 REST 成熟度模型中可以看到,使用 HATEOAS 的 REST 服务是成熟度最高的,也是推荐的做法。对于不使用 HATEOAS 的 REST 服务,客户端和服务器的实现之间是紧密耦合的。 Spring HATEOAS 如果 Web 应用基于 Spring 框架开发,那么可以直接使用 Spring 框架的子项目 HATEOAS 来开发满足 HATEOAS 约束的 Web 服务。 为了把模型对象类转换成满足 HATEOAS 要求的资源,需要添加链接信息。Spring HATEOAS 使用 org.springframework.hateoas.Link 类来表示链接。 Spring HATEOAS 在 Spring MVC 框架的基础上,允许开发人员通过简单的配置来添加 HATEOAS 约束。 本文对 REST 和 HATEOAS 的相关概念以及 Spring HATEOAS 框架的使用做了详细的介绍。
http://mpvideo.qpic.cn/0bf2imaskaab7mamkoolrjpvcq6devbqcjia.f10002.mp4?dis_k=20de38d5143dcccb635a741
概览 本文将重点介绍REST API的可发现性、HATEOAS及由测试驱动的实际场景。 2. 要理解可发现性,您需要理解REST架构的主要约束HATEOAS(The Hypermedia As The Engine Of Application State);作为应用程序状态的 唯一驱动,REST
为了让ASP.NET Core Web API 支持HATEOAS, 得需要自己手动编写代码实现. 暂时先不管这点,为了支持集合的HATEOAS,我们需要一个包装类: ? 结果是可以的,现在对于CityResource来说差不多可以说是支持HATEOAS了。 使用动态类型 这里要用到dynamic和匿名类型。 如果API的功能或业务逻辑变化了,HATEOAS会把这件事处理很好, API的消费者通过观察HATEOAS的这些东西,就不会对它造成破坏。 除了手动实现的这种HATEOAS,还有很多其它的选项,例如OData。
Hypermedia As The Engine Of Application State (HATEOAS) HATEOAS(Hypermedia as the engine of application HATEOAS的优点有: 具有可进化性并且能自我描述 超媒体(Hypermedia, 例如超链接)驱动如何消费和使用API, 它告诉客户端如何使用API, 如何与API交互, 例如: 如何删除资源, 更新资源 例如下面就是一个不使用HATEOAS的响应例子: { "id" : 1, "body" : "My first blog post", "postdate" : "2015-05 为了让ASP.NET Core Web API 支持HATEOAS, 得需要自己手动编写代码实现. 这是第一种实现HATEOAS的方案, 另外一种等我稍微研究下再写.
HATEOAS这部分就写到这. 其实 翻页的逻辑很适合使用HATEOAS结构. 有空我再写一个翻页的吧.
今天听到两个同学找我,说想试试HATEOAS,方便通过晋升答辩,被我严词拒绝。任何针对晋升的技术选型,都是耍流氓。 殊不知,HATEOAS,正是行业大拿Roy Fielding在他的博士论文里搞出来的东西。 画外音:假装幽默。 Roy Fielding,何许人也? 什么是HATEOAS? 为什么说HATEOAS是个大坑? HATEOAS使得: 前端简化的部分,后端更加复杂; 前端解耦的部分,后端更加耦合; 前端方便的部分,后端更加不方便了; … 总之,架构整体效率下降了。
Hypermedia As The Engine Of Application State (HATEOAS) HATEOAS(Hypermedia as the engine of application HATEOAS的优点有: 具有可进化性并且能自我描述 超媒体(Hypermedia, 例如超链接)驱动如何消费和使用API, 它告诉客户端如何使用API, 如何与API交互, 例如: 如何删除资源, 更新资源 例如下面就是一个不使用HATEOAS的响应例子: { "id" : 1, "body" : "My first blog post", "postdate" : "2015-05 为了让ASP.NET Core Web API 支持HATEOAS, 得需要自己手动编写代码实现. HATEOAS这部分就写到这. 其实 翻页的逻辑很适合使用HATEOAS结构. 有空我再写一个翻页的吧.
这些格式可以定义在 HTTP header 里面: Content-Type:定义了请求格式 Accept:定义了接收相应的格式列表 使用 HATEOAS 约束 HATEOAS(Hypermedia as 在介绍 HATEOAS 之前,先介绍一下 Richardson 提出的 REST 成熟度模型。 第四个层次(Level 3)的 Web 服务使用 HATEOAS。在资源的表达中包含了链接信息。客户端可以根据链接来发现可以执行的动作。 从上述 REST 成熟度模型中可以看到,使用 HATEOAS 的 REST 服务是成熟度最高的,也是推荐的做法。对于不使用 HATEOAS 的 REST 服务,客户端和服务器的实现之间是紧密耦合的。 而使用 HATEOAS 的 REST 服务中,客户端可以通过服务器提供的资源的表达来智能地发现可以执行的操作。