[day11 SpringBoot案例]
1.什么是RESTful风格的后端接口?
RESTful是一种定义Web API接口的设计风格,尤其适用于前后端分离的应用模式中。 这种风格的理念认为后端开发任务就是提供数据的,对外提供的是数据资源的访问接口,所以在定义接口时,客户端访问的URL路径就表示这种要操作的数据资源。
2.开发一个功能需要经历哪些流程?
查询页面原型明确需求
阅读接口文档(已提供)
思路分析
接口开发:就是开发后台的业务功能,一个业务功能,我们称为一个接口。
接口测试:功能开发完毕后,先通过Postman进行接口测试,测试通过后,和前端进行联调测试。 前后端联调测试:和前端开发人员开发好的前端工程一起测试。
3.开发分页功能前端至少需要传什么参数过来,后台简化分页开发的插件叫什么?怎么用?
当前页码 page
每页展示记录数 pageSize
插件:PageHelper
如果使用了PageHelper分页插件进行分页,那我们是无需再Mapper这层来手动分页的。 Mapper这一层,我们进行正常的列表查询即可。我们需要在Service层中,调用Mapper的方法之前设置分页参数,在调用Mapper方法执行查询之后,解析分页结果,并将结果封装到PageBean对象中,返回。
4.部门新增逻辑?
查看页面原型可以看到:点击 "新增部门" 按钮,弹出新增部门对话框,输入部门名称,点击 "保存" ,将部门信息保存到数据库。
然后我们就可以查看资料中提供的,新增部门的接口文档
请求路径:/depts
请求方式:POST
接口描述:该接口用于添加部门数据
功能开发完成后,我们就可以启动项目,然后打开postman。发起POST请求,访问 :http://localhost:8080/depts,然后在请求体中传递json格式的参数。
在方法上面加的注解中指定的请求路径中 ,都包含了 /depts ,重复了。我们可以考虑将其抽取到类上,可以在类上加一个注解@RequestMapping,然后声明属性 value。
那如果类上添加了@RequestMapping注解,在方法上也添加了@RequestMapping注解(或者其衍生注解 @GetMapping、@PostMapping、@DeleteMapping、@PutMapping),此时在进行请求访问时,完整的请求路径应该是 类上的@RequestMapping的value属性 + 方法上的@RequestMapping的value属性。
5.部门删除逻辑?
然后我们就可以查看资料中提供的,删除部门的接口文档。
请求路径:/depts/{id}
请求方式:DELETE
接口描述:该接口用于根据ID删除部门数据
点击部门列表后面操作栏的 "删除" 按钮,就可以删除该部门信息。 此时,前端只需要给服务端传递一个ID参数就可以了。 我们从接口文档中也可以看得出来。
功能开发完成后,我们就可以启动项目,然后打开postman。发起DELETE请求,访问 :http://localhost:8080/depts/5
最后进行前后端联调
6.部门查询逻辑?
通过页面原型以及需求描述,我们可以看到,部门查询,是不需要考虑分页操作的。
然后我们就可以查看资料中提供的,查询部门列表的接口文档。
请求路径:/depts
请求方式:GET
接口描述:该接口用于部门列表数据查询
功能开发完成后,我们就可以启动项目,然后打开postman。发起GET请求,访问 :http://localhost:8080/depts
最后进行前后端联调
导入前端项目,启动
在vscode中导入资料中提供好的前端工程,然后点击 npm 脚本运行。
然后访问
7.员工查询逻辑?怎么实现分页查询的?
通过提供的页面原型及需求可以看出,由于员工数据比较多,在展示的时候,需要进行分页展示。
分页查询功能时候比较复杂的,所以我们要先分析清楚以下两个问题:
前端在请求服务端时,传递的参数:
- 当前页码 page
- 每页展示记录数 pageSize
后端需要响应什么数据给前端:
上面的页面原型是分页查询页面展示的效果,从上面我们可以看出需要响应以下两份数据
当前页需要展示的数据。我们在后端一般会存储到 List 集合中
总共记录数。在上图页面中需要展示总的记录数,所以这部分数据也需要。总的页码 elementUI 的分页组件会自动计算,我们不需要关心。
后端需要响应总记录数
和 当前页的数据
两部分数据给前端,所以在 EmpMapper
接口中需要定义两个方法:
page() :查询当前页的数据的方法
count() :查询总记录的方法
功能开发完成后,我们就可以启动项目,然后打开postman。发起GET请求,访问 :http://localhost:8080/emps?page=1&pageSize=5
8.员工删除怎么实现?
查看页面原型:当我们勾选列表前面的复选框,然后点击 "批量删除" 按钮,就可以将这一批次的员工信息删除掉了
然后我们就可以查看资料中提供的,删除员工的接口文档。
请求路径:/emps/{ids}
请求方式:DELETE
接口描述:该接口用于批量删除员工的数据信息
请求样例:/depts/1,2,3
从接口文档中,我们可以看出在路径参数中,传递过来了多个id,在springboot中,我们可以将这组id值封装到一个集合中,然后在Mybatis中,通过动态SQL来完成批量删除操作。
功能开发完成后,我们就可以启动项目,然后打开postman。发起DELETE请求,访问 :http://localhost:8080/emps/15,16,17