查询部门的功能我们搞定了,下面我们开始完成删除部门
的功能开发。
点击部门列表后面操作栏的 "删除" 按钮,就可以删除该部门信息。 此时,前端只需要给服务端传递一个ID参数就可以了。 我们从接口文档中也可以看得出来。
删除部门
基本信息
请求路径:/depts/{id} ? 请求方式:DELETE ? 接口描述:该接口用于根据ID删除部门数据
请求参数 参数格式:路径参数
参数说明:
参数名 | 类型 | 是否必须 | 备注 |
---|---|---|---|
id | number | 必须 | 部门ID |
请求参数样例:
/depts/1
响应数据 参数格式:application/json
参数说明:
参数名 | 类型 | 是否必须 | 备注 |
---|---|---|---|
code | number | 必须 | 响应码,1 代表成功,0 代表失败 |
msg | string | 非必须 | 提示信息 |
data | object | 非必须 | 返回的数据 |
响应数据样例:
{
? ?"code":1,
? ?"msg":"success",
? ?"data":null
}
接口文档规定:
前端请求路径:/depts/{id}
前端请求方式:DELETE
问题1:怎么在controller中接收请求路径中的路径参数?
@PathVariable问题2:如何限定请求方式是delete?
@DeleteMapping
通过查看接口文档:删除部门
请求路径:/depts/{id}
请求方式:DELETE
请求参数:路径参数 {id}
响应数据:json格式
DeptController
@Slf4j
@RestController
public class DeptController {
? ?@Autowired
? ?private DeptService deptService;
?
? ?@DeleteMapping("/depts/{id}")
? ?public Result delete(@PathVariable Integer id) {
? ? ? ?//日志记录
? ? ? ?log.info("根据id删除部门");
? ? ? ?//调用service层功能
? ? ? ?deptService.delete(id);
? ? ? ?//响应
? ? ? ?return Result.success();
? }
? ?
? ?//省略...
}
DeptService
public interface DeptService {
?
? ?/**
? ? * 根据id删除部门
? ? * @param id ? 部门id
? ? */
? ?void delete(Integer id);
?
? ?//省略...
}
DeptServiceImpl
@Slf4j
@Service
public class DeptServiceImpl implements DeptService {
? ?@Autowired
? ?private DeptMapper deptMapper;
?
? ?@Override
? ?public void delete(Integer id) {
? ? ? ?//调用持久层删除功能
? ? ? ?deptMapper.deleteById(id);
? }
? ?
? ?//省略...
}
DeptMapper
@Mapper
public interface DeptMapper {
? ?/**
? ? * 根据id删除部门信息
? ? * @param id ? 部门id
? ? */
? ?@Delete("delete from dept where id = #{id}")
? ?void deleteById(Integer id);
?
? ?//省略...
}
删除功能开发完成后,重新启动项目,使用postman,发起DELETE请求:
打开浏览器,测试后端功能接口: