Spring Boot 2精髓 - (10) REST

spring boot

REST 简介

REST,即Representational State Transfer的缩写,翻译为表现层状态转化

  • 资源: 网络上的一个实体, 以用 一个 U阳(统一 资源定位符〉指向它,每种资源对应一个特定的 URI
  • 表现层: “资源”具体呈现出来的 形式称为它的“表现层”( Representation)
  • 状态转化: 服务器端发生“状态转化”( State Transfer)。 而这种转化是建立在表现层之上的

REST 风格的架构

  • 使用api作为Web上下文
  • 增加版本标识
  • 标识资源
  • REST中的 HTTP Method
  • REST中的 HTTP Status

使用api作为Web上下文

http://xxx.com/apihttp://api.xxx.com

增加 一个版本标识

http://xxx.com/api/v1.1

标识资源

将资源名称放到URL中,如果资源有层级关系,则放入层级关系

HTTP Method

  • POST ,代表增加资源
  • PUT,代表更改资源,客户端提供需完整的资源属性
  • GET,代表查询资源
  • PATCH,更新资源,客户端提供仅需要更改的资源属性; DELETE,通常用于删除资源
  • HEAD,类似 GET,但仅仅只有 HTTP 头信息,头信息包含了需要查找的信息
  • OPTIONS,用于获取 URI所支持的方法,响应信息会在 HTTP 头中包含一个名为”Allow”的头,值是所支持的方法,如”GET,POST”

HTIP Status

  • 200,0K,用户请求成功,如查询数据成功返回 。
  • 400,错误的的请求,在第 3 章 中, URI 匹配上 Spring Boot 中的 Controller,但方法参 数匹配错误,就会抛出错误。
  • 404 NOT Found,用户发出的请求针对的资源不存在,通常是 Spring Boot 中的 Controller 没有匹配上URI,或者匹配上了 Controller方法,但渲染的视图不存在。
  • 405,用来访问本页面的 HTTP Method 不被允许,比如通过 HTTP GET 方式访问了一个@PostMapping 的Controller方法。
  • 406,表示无法使用请求的 内容特性来响应请求的资源,比如在 Spring Boot 中, 请求 后缀以 html 结尾,但同时请求的 HTTP 头中又包含了 Accept:application/json
  • 500,服务器内部错误,无法完成请求,通常是 Controller抛出的异常

集成 REST

1
2
3
4
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>

@RestController

@Controller和@ResponseBody 的组合

REST Client

RestTemplate

定制 RestTemplate

创建一个配置类实现 RestT巳mplateCustornizer接口的customize方法

Swagger UI

集成 Swagger

Swagger 规范

Powered by Hexo and Hexo-theme-hiker

Copyright © 2013 - 2021 朝着牛逼的道路一路狂奔 All Rights Reserved.

访客数 : | 访问量 :