SpringInAction 六七章总结

时间:2020-07-18 19:45:22   收藏:0   阅读:88

第六章 创建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服务

Spring消费REST API的几种方式

GET资源

rest.getForObject("http://localhost:8080/ingredients/{id}", Ingredient.class, ingredientId);

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

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());
评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!