前言
仰天大笑出门去,我辈岂是蓬蒿人。
简介
REST,即Representational State Transfer的缩写。直接翻译的意思是"表现层状态转化"。现在流行的各种Web框架,包括我们现在要说的Spring Boot都支持REST开发。
注意:REST并非一种技术或者规范,而是一种架构风格!
架构风格如下:
- 使用“api”作为web上下文,例如:
http://localhost:8888/api”
; - 增加版本标识,例如:
http://localhost:8888/api/v1.2”
; - 标志资源,例如:
http://localhost:8888/api/user
,就可以标识是用户相关的; - HTTP Method的确定;
- HTTP Status的确定;
小知识
HTTP方法介绍:
- POST 新增
- PUT 更新
- GET 查询
- DELETE 删除,
注意:实际项目中删除往往都只是逻辑删除,例如:只是改变数据在数据库为删除状态,并没有真正的删除!
- 等等
HTTP状态介绍:
- 200 请求成功;
- 400 请求错误;
- 404 通常都是对应的url不存在;
- 500 服务器报错,通常都是参数错误,或者服务器内部抛出了异常;
- 等等
集成REST
在Spring Boot中只要我们在pom中添加了如下依赖,就自动支持REST:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
实际应用
/**
* <p>
* 模拟一个查询详情的操作
* </p>
*
* @author xianLing.zhou
* @since 2019/4/17
*/
//在hello!spring boot 一文中我们使用的是,@Controller加上的@ResponseBody的注解,这里使用@RestController就相当于两者结合。
@RestController
//这样是符合REST的,使用api作为上下文,v1.1标识版本
@RequestMapping("/api/v1.1/")
public class RESTController {
@GetMapping("/{id}")
public Object detail(@PathVariable Long id) {
//TODO 这里我们是模拟假设查询ID为1的详情,在实际项目中就是实际的查询逻辑
if (id == 1) {
return "这是ID为1的详情";
}
return null;
}
}
我们将项目启动起来,然后在浏览器输入:http://localhost:8080/api/v1.1/1
其他都是类似,大家可以参照着,试着写出新增、更新这些操作。
结尾
欢迎大家指正,留言谢谢大家。