zoukankan      html  css  js  c++  java
  • 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());
    
  • 相关阅读:
    eclipse设置字体大小
    如何利用服务器下发的Cookie实现基于此Cookie的会话保持
    Docker学习笔记_安装和使用Python
    Docker学习笔记_安装和使用mysql
    Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.38/images/json: dial unix /var/run/docker.sock: conne
    Ubuntu18.04创建新的系统用户
    Docker学习笔记_安装和使用nginx
    Docker安装和使用Tomcat
    虚拟机ubuntu18.04设置静态IP
    我学习参考的网址
  • 原文地址:https://www.cnblogs.com/AganRun/p/13336453.html
Copyright © 2011-2022 走看看