SpringInAction 六七章总结

Posted aganrun

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SpringInAction 六七章总结相关的知识,希望对你有一定的参考价值。

第六章 创建REST服务

创建Restful服务,那么前端框架可以使用Angular、React、Vue.js等适合自己的前端技术。

Angular参考书籍 Jeremy Wilken编写的《Angular in Action》以及Yakov Fain和Anton Moiseev编写的《Angular Development with TypeScript, Second Edition》

Spring为不同的Http请求提供了注解

注解 Http方法 典型用途
@GetMapping Http GET请求 读取资源
@PostMapping Http POST请求 创建资源
@PutMapping Http PUT请求 更新资源
@GetMapping Http PATCH请求 更新资源(局部)
@DeleteMapping Http DELETE请求 删除资源
@RequestMapping 通用的请求处理

6.1 RestFul控制器

@RestController

Controller + ResponseBody 该控制器所有的返回是json形式

@RequestMapping(produces = "application/json")

声明该处理器只处理Accept头信息包含“application/json”的请求

@CrossOrigin(origins = "*")

由于前段与API可能会运行在独立的主机或端口上,Web浏览器会阻止客户端消费API。
@CrossOrigin允许来自任何域的客户端消费该API

6.1.2 发送服务器到服务器端

正常情况下,HTTP成功返回状态码是200。有时想使返回的HTTP更具有描述性,可以知道返回的状态码。例如201代表创建了一个资源

@ResponseStatus(HttpStatus.CREATED)
@ResponseStatus(code = HttpStatus.NO_CONTENT)   //确保只响应204,不返回任何资源【delete使用】

6.2-6.3内容为超媒体相关

6.4 总结

  • REST端点可以通过SpringMVC来创建
  • 将数据写入响应体可以通过@ReponseBody或ResponseEntity对象实现
  • RestController = RequestMapping + ResponseBody

第七章 消费REST服务

Spring消费REST API的几种方式

  • RestTemplate: Spring核心框架通过,简单、同步REST客户端【本章重点】
  • Traverson: Spring HATEOAS提供,同步的REST客户端
  • WebCline: Spring5引入,反应式、异步REST客户端

GET资源

  • getForObject(URL, 返回类型, 参数列表...)
rest.getForObject("http://localhost:8080/ingredients/{id}", Ingredient.class, ingredientId);

如果参数过多,可以封装到Map中,传入第三个参数

  • getForEntity。使用方法类似,区别是返回的是ResponseEntity对象,包含响应细节,例如响应头信息

PUT资源

rest.put("http://localhost:8080/ingredients/{id}", ingredient, ingredient.getId());

POST资源

rest.postForObject("http://localhost:8080/ingredients", ingredient, Ingredient.class);

DELETE请求

rest.delete("http://localhost:8080/ingredients/{id}", ingredient.getId());

以上是关于SpringInAction 六七章总结的主要内容,如果未能解决你的问题,请参考以下文章

算法导论笔记——第六七章 堆排序和快速排序

openGL之API学习(一六七)默认着色器 顶点属性索引 别名索引

第六七周总结

哈工大 软件构造课程 复习考点总结(第七章)

201671010111 2016-2017-2 《面向对象的程序设计》 六七周学习总结

Android IOS WebRTC 音视频开发总结(六七)-- 在线教育虽火要做好其实不容易