使用技术
- SpringBoot框架
一、基础知识简述
REST:表述性状态转换(Representational State Transfer),一种设计风格。
RESTful:符合REST风格的程序。
RESTFUL是一种网络应用程序的设计风格和开发方式,基于HTTP,可以使用XML格式定义或JSON格式定义。RESTFUL适用于移动互联网厂商作为业务接口的场景,实现第三方OTT调用移动网络资源的功能,动作类型为新增、变更、删除所调用资源。
二、RESTful的特性
特性有三个,分别是资源(Resources)、表现层(Representation)、状态转换(State Transfer)。
资源
可以表达为我们访问的资源,也就是我们发送url请求所请求,响应回来的信息就是一个资源。
表现层
资源的呈现形式,就是表现层。
状态转换
不同的操作状态,举例来说就是,HTTP中有不同操作的请求,GET、POST、PUT、DELETE。
- GET 请求资源
- POST 保存资源
- PUT 更新资源
- DELETE 删除资源
三、实战Demo
我们做一个简单的Demo,进行Resuful的设计操作。
我们使用web请求对后端数据库进行增删改查时,以前的做法是:
方法 | 请求类型 | 请求url | 请求体 |
---|---|---|---|
增 | post | …/addxxx | name = xxx |
删 | get | …/delxxx?id=xxx | |
改 | post | …/updatexxx | id=xxx,name=xxx |
查 | get | …/addxxx?id=xxx |
现在改为
方法 | 请求类型 | 请求url | 请求体 |
---|---|---|---|
增 | post | …/xxx | name = xxx |
删 | delete | …/xxx/1 | |
改 | put | …/xxx/1 | name=xxx |
查 | get | …/xxx |
总体就是我们使用不同的请求方法和url的占位数来达到不同的操作。
因为重点在Controller层,所以只说明Controller和其他重要细节。
新增
@PostMapping("/testData")
public ResultVo addTestData(@RequestBody TestPOJO testPOJO) {
testMapper.insert(testPOJO);
return ResultVoUtil.success("新增数据成功");
}
请求方法设置为Post,通过请求体提交保存的数据。
删除
@DeleteMapping("/testData/{id}")
public ResultVo delTestData(@PathVariable("id")Integer id) {
int i = testMapper.deleteByPrimaryKey(id);
return ResultVoUtil.success("删除数据成功");
}
请求方法设置为Delete,在url上占位一个数传输数据
修改
@PutMapping("/testData")
public ResultVo updTestData(@RequestBody TestPOJO testPOJO) {
testMapper.updateByPrimaryKeySelective(testPOJO);
return ResultVoUtil.success("修改数据成功");
}
请求方法设置为PUT,通过请求体提交保存的数据。
查询
@GetMapping("/testData")
public ResultVo getTestData() {
List<TestPOJO> testPOJOS = testMapper.selectAll();
return ResultVoUtil.success(testPOJOS);
}
请求设置为GET请求。