Javaweb之SpringBootWeb案例新增部门的详细解析

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 非必须 返回的数据

    响应数据样例:

    java 复制代码
    {
        "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

java 复制代码
@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

java 复制代码
public interface DeptService {
​
    /**
     * 根据id删除部门
     * @param id    部门id
     */
    void delete(Integer id);
​
    //省略...
}

DeptServiceImpl

java 复制代码
@Slf4j
@Service
public class DeptServiceImpl implements DeptService {
    @Autowired
    private DeptMapper deptMapper;
​
    @Override
    public void delete(Integer id) {
        //调用持久层删除功能
        deptMapper.deleteById(id);
    }
    
    //省略...
}

DeptMapper

java 复制代码
@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 前后端联调

打开浏览器,测试后端功能接口:

相关推荐
笃励13 分钟前
Java面试题二
java·开发语言·python
PythonFun15 分钟前
自建RustDesk服务器:详细步骤与操作指南
运维·服务器
Android技术栈17 分钟前
鸿蒙开发(NEXT/API 12)【管理应用与Wear Engine服务的连接状态】手机侧应用开发
服务器·harmonyos·鸿蒙·鸿蒙系统·openharmony
笑的像个child20 分钟前
使用树莓派搭建音乐服务器
服务器·树莓派·navidrome
facaixxx202421 分钟前
京东云主机怎么用?使用京东云服务器建网站(图文教程)
运维·服务器·京东云
jyan_敬言22 分钟前
【Linux】Linux命令与操作详解(一)文件管理(文件命令)、用户与用户组管理(创建、删除用户/组)
linux·运维·服务器·c语言·开发语言·汇编·c++
速盾cdn25 分钟前
速盾:网页游戏部署高防服务器有什么优势?
服务器·前端·web安全
易雪寒31 分钟前
IDEA在git提交时添加忽略文件
java·git·intellij-idea
一颗星星辰1 小时前
Python | 第九章 | 排序和查找
服务器·网络·python
打码人的日常分享1 小时前
企业人力资源管理,人事档案管理,绩效考核,五险一金,招聘培训,薪酬管理一体化管理系统(源码)
java·数据库·python·需求分析·规格说明书