2.3 删除部门
查询部门的功能我们搞定了,下面我们开始完成删除部门的功能开发。
2.3.1 需求

点击部门列表后面操作栏的 "删除" 按钮,就可以删除该部门信息。 此时,前端只需要给服务端传递一个ID参数就可以了。 我们从接口文档中也可以看得出来。
2.3.2 接口文档
删除部门
-  
基本信息
请求路径:/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 } 
2.3.3 思路分析

接口文档规定:
前端请求路径:/depts/{id}
前端请求方式:DELETE
问题1:怎么在controller中接收请求路径中的路径参数?
@PathVariable问题2:如何限定请求方式是delete?
@DeleteMapping
2.3.4 功能开发
通过查看接口文档:删除部门
请求路径:/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);
   
    //省略...
} 
 
2.3.5 功能测试
删除功能开发完成后,重新启动项目,使用postman,发起DELETE请求:

2.3.6 前后端联调
打开浏览器,测试后端功能接口:





















