Restful
REST,表述性状态转换,他是一种软件架构风格
使用URL定位资源,HTTP动词描述操作
根据发出请求类型来区分操作
- GET: 查询id为1的用户
- POST:新增用户
- PUT:修改用户
- DELETE:删除id为1的用户
此为风格,是约定方式,可以打破
描述模块的功能通常使用复数,也就是加s的格式来描述,表示此类资源,而非单个资源。eg:users、books
统一响应结果
//结果实体类
public class Result {private Integer code;//响应码,1 代表成功; 0 代表失败private String msg; //响应信息 描述字符串private Object data; //返回的数据//增删改 成功响应public static Result success(){return new Result(1,"success",null);}//查询 成功响应public static Result success(Object data){return new Result(1,"success",data);}//失败响应public static Result error(String msg){return new Result(0,msg,null);}
}
开发流程
- 查看页面原型明确需求
- 阅读接口文档
- 思路分析
- 接口开发
- 接口测试–postman
- 前后端联调测试
输出日志
在controller类上加上此注解@Slf4j
,并且在方法内部加上日志输出语句这样在方法执行的时候就会输出到控制台
log.info("查询全部部门数据");
GET请求流程
前端发出请求后,根据RequestMapping导航到对应controller方法,controller方法中调用service方法来获取数据,在service中调用mapper接口中的方法来查询数据,在mapper接口方法中就会往数据库中发送sql语句进行查询,并且将查询到的信息,封装在List集合中,最终将List集合返回给service,service又返回给controller,controller拿到返回的数据后,再将这个数据返回给前端。
限制请求方式
@RequestMapping
后可以加上一个method属性,用于限定请求方式
@RequestMapping(value = "/depts",method = RequestMethod.GET)
或者还可以直接使用衍生注解@GetMapping
前后端联调
DELETE请求流程
限制请求方式
直接使用衍生注解@DeleteMapping
@DeleteMapping("/depts/{id}")public Result delete(@PathVariable Integer id){}
@Pathvariable
用于将URL中的模板变量映射到参数的绑定
POST请求流程
限制请求方式
直接使用衍生注解@PostMapping
请求参数读取
当前端发出的请求数据有传送json参数时,我们可以加上@RequestBody,从而将这个json数组存入实体类中。
@PostMapping("/depts")public Result add(@RequestBody Dept dept){
分页查询
前端给后端:
- 当前页面Page
- 每页展示记录数:pageSize
后端给前端:
- 数据列表:
List-->select * from emp limit ?,?
- 总记录数:
total-->select count(*) from emp
@RequestParam(defaultValue="..")
给请求参数设置默认值,用于如果前端没有返回请求参数,但是controller方法内需要请求参数赋值的时候,用于注解方法内的形参。
分页查询插件PageHelper
查询回显
在有些修改操作时,会先将原有数据回显展示,之后在此基础上进行修改,之后再提交保存修改。