超媒体是REST的一个重要方面。它允许您构建在很大程度上分离客户机和服务器的服务,并允许它们独立地发展。为REST资源返回的表示不仅包含数据,还包含到相关资源的链接。因此,表示的设计对整个服务的设计至关重要。

自我描述的信息,每项数据应该是可以自我描述的,方便代码去处理和解析其中的内容。比如通过HTTP返回的数据里面有 [MIME type ]信息,我们从MIME type里面可以知道数据的具体格式,是图片,视频还是JSON,客户端通过body内容、查询串参数、请求头和URI(资源名称)来传送状态。服务端通过body内容,响应码和响应头传送状态给客户端。这项技术被称为超媒体(或超文本链接)。摘抄: 面试官:你连RESTful都不知道我怎么敢要你?

首先创建一个SpringBoot项目依赖:Spring HATEOAS  hateoas 又是什么?

package com.dongyu.springbootguides17.resthateoas;import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonProperty;import org.springframework.hateoas.RepresentationModel;public class Greeting extends RepresentationModel<Greeting> {private final String content;@JsonCreatorpublic Greeting(@JsonProperty("content") String content) {this.content = content;}public String getContent() {return content;}
}
package com.dongyu.springbootguides17.resthateoas;import static org.springframework.hateoas.server.mvc.WebMvcLinkBuilder.*;import org.springframework.http.HttpEntity;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;@RestController
public class GreetingController {private static final String TEMPLATE = "Hello, %s!";@RequestMapping("/greeting")public HttpEntity<Greeting> greeting(@RequestParam(value = "name", defaultValue = "World") String name) {Greeting greeting = new Greeting(String.format(TEMPLATE, name));greeting.add(linkTo(methodOn(GreetingController.class).greeting(name)).withSelfRel());return new ResponseEntity<>(greeting, HttpStatus.OK);}
}

标准的REST,

Spring Boot 2020 官方基础68课程第十七个 Hypermedia-Driven RESTful Web Service 超媒体相关推荐

  1. Spring Boot 2.x基础教程:快速入门

    点击蓝色"程序猿DD"关注我哟 来源:http://t./ <Star最多的Spring Boot教程继续更新了> 牛皮吹过了! Git仓库和博客专题页也改版完成! 是 ...

  2. Spring Boot 2.x基础教程:使用Elastic Job实现定时任务

    上一篇,我们介绍了如何使用Spring Boot自带的@Scheduled注解实现定时任务(https://blog.didispace.com/spring-boot-learning-2-7-1/ ...

  3. Spring Boot 2.x基础教程:使用MyBatis的XML配置方式

    点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 作者 | 翟永超 来源 | http://blog.di ...

  4. Spring Boot 2.x基础教程:使用国产数据库连接池Druid

    点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 作者 | 翟永超 来源 | http://blog.di ...

  5. 19年8月 字母哥 第一章 spring boot 2.x基础及概念入门 这里全部看完了 热部署没出来 第二章在前面2页 用热点公司网不行

    http://springboot.zimug.com/1233100   文档 http://www.zimug.com/page/5     字母哥个人博客 11111 第一章 spring bo ...

  6. Spring Boot 2.x基础教程:找回启动日志中的请求路径列表

    如果您看过之前的Spring Boot 1.x教程,或者自己原本就对Spring Boot有一些经验,或者对Spring MVC很熟悉.那么对于Spring构建的Web应用在启动的时候,都会输出当前应 ...

  7. Spring Boot 2.x基础教程:使用Elastic Job的分片配置

    上一篇,我们介绍了如何使用Elastic Job实现定时任务(https://blog.didispace.com/spring-boot-learning-2-7-2/).解决了使用@Schedul ...

  8. Spring Boot 2.x基础教程:使用Redis的发布订阅功能

    通过前面一篇集中式缓存的使用教程,我们已经了解了Redis的核心功能:作为K.V存储的高性能缓存. 接下来我们会分几篇来继续讲讲Redis的一些其他强大用法!如果你对此感兴趣,一定要关注收藏我哦! 发 ...

  9. Spring Boot 2.x基础教程:如何扩展XML格式的请求和响应

    在之前的所有Spring Boot教程中,我们都只提到和用到了针对HTML和JSON格式的请求与响应处理.那么对于XML格式的请求要如何快速的在Controller中包装成对象,以及如何以XML的格式 ...

  10. Spring Boot 2.x基础教程:使用JTA实现分布式事务

    在一个Spring Boot项目中,连接多个数据源还是比较常见的.之前也介绍了如何在几种常用框架的场景下配置多数据源,具体可见: Spring Boot 2.x基础教程:JdbcTemplate的多数 ...

最新文章

  1. 算法笔记-递归算法、递归排序、递归的时间复杂度、master公式(也叫主方法)
  2. cdata节 赋值变量_JS原生练习题:第二课第5~12节
  3. Redis实现分布式锁释放锁
  4. Mysql常用30种SQL查询语句优化方法
  5. 64位内核开发第二讲.内核编程注意事项,以及UNICODE_STRING
  6. 引入外部js如何通知页面其编码格式
  7. Python编程基础08:循环结构
  8. 【转】QT中使用MYSQL中文乱码解决方法
  9. React Native 入门第一篇
  10. 将时间戳转化为带时区的格式
  11. openwrt之network配置文件
  12. java+js+html 实现webSocket广播及私聊
  13. 学经济学有必要学python吗_重读《1844年经济学哲学手稿》还有必要吗?
  14. matlab实时编辑器怎么用,Markdown 实时编辑器
  15. Unity内置Shader解读9——Reflective/Bumped Diffuse
  16. chrome插件实现简单网页实时翻译
  17. 正则表达式-RegExp-常用正则表达式
  18. 关于汽车信息安全测试的公司-阿古斯
  19. 直角坐标系与极坐标系了解与转换
  20. html3d轮播图片效果,CSS3,3D效果轮播图

热门文章

  1. IE浏览器卡死的问题
  2. 有道云笔记 迁移 语雀过程记录
  3. java银行排队系统_java--面向对象(一个简单的银行排队系统)原理版
  4. [K8S] PV动态供给
  5. 【Collection、List、泛型、数据结构】
  6. 提升自己的认知-思维模型
  7. HTTP与HTTPS是什么?http和https的区别
  8. Tupper自我指涉公式:图象里竟然包含式子本身
  9. 最新后盾网Smarty框架教程 Smarty重入门到实战教程 共14课
  10. vs2012 +WP8sdk 开发WP8应用