springboot实战学习(11)(更新用户基本信息接口主逻辑)

  • 接着继续学习。
  • 之前的博客的进度:完成用户模块的注册接口的开发以及注册时的参数合法性校验。在基本完成用户模块的登录接口的主逻辑的基础上,学习了"JWT令牌的组成与使用"、完成了"登录认证"(生成与验证JWT令牌)。也完成了获取用户详细信息接口开发(使用ThreadLocal优化)。具体往回看了解的链接如下。

springboot实战学习(10)(ThreadLoacl优化获取用户详细信息接口)(重写拦截器afterCompletion()方法)_loacalthread springboot-CSDN博客

  • 下面开发用户模块的第四个接口——更新用户基本信息。

目录

一、明确需求

(1)更新用户基本信息

二、查阅接口文档

(1)请求路径、请求方式

PUT请求。

(2)请求参数

(3)响应数据

三、分析实现思路

(1)UserController层

(I)方法外

(II)方法内

(III)其它层

四、完成代码书写

(1)UserController层

(2)UserService层

(I)接口(UserService)

(II)实现类(UserServiceImpl)

(3)UserMapper层

五、postman测试程序

(1)写好所需主逻辑,重启工程。

(2)打开postman测试接口。

(3)查看当前数据库表中已经注册的用户。

(4)点击测试,发现问题(需要登录认证)


一、明确需求

(1)更新用户基本信息
  • 用户在个人中心,点击基本资料后,在页面的主区域会展示当前用户的详细信息。
  • 用户可以修改用户的个人昵称、用户的个人邮箱。
  • 当点击"提交修改",从而访问后台的接口去更新当前用户的信息。
  • 其中用户的登录名称无法修改(置灰)。因为一旦注册完,不允许修改,用户名唯一。

二、查阅接口文档

(1)请求路径、请求方式
  • 因为是更新,所以请求方式用PUT。

  • PUT请求。
  • 当你想更新某个资源时,使用 HTTP 的 PUT 方法是常见的做法。
  • PUT方法通常用于完全替换目标资源的当前表示。这与GET方法(用于请求资源)和 POST方法(通常用于创建新资源)有所不同。

(2)请求参数
  • 请求参数的格式是JSON格式。
  • 注意username(用户名)这个参数不是必须的。

(3)响应数据
  • 响应数据的格式是JSON格式。
  • 还是和之前一样:"code"、"message"、"data"。

三、分析实现思路

(1)UserController层
(I)方法外
  • 在UserController中添加一个"更新"方法。并且在方法上添加注解@PutMapping()。请求路径"/update"。
  • 其次,浏览器会携带"id"、"username"、"nickname"、"email"这样的数据,并且是在请求体中以JSON格式的携带过去。
  • 所以可以把这些数据封装到实体类对象"user"里面进行接收。
  • 其次为了让框架能够自动的把请求体里的JSON数据给我们转换成实体类对象。所以需要在方法中的参数前面添加一个注解@RequestBody

(II)方法内
  • 调用UserService层里面提供的更新方法,完成"更新"操作即可。
(III)其它层
  • 所以UserService层需要提供"更新"相关的方法

  • UserMapper层也需要执行对应的SQL语句。而且在这里注意并没有去更新"username"(用户名不能修改)。并且有一个"update_time"字段需要更新

四、完成代码书写

(1)UserController层
@PutMapping("/update")
    public Result update(@RequestBody User user){
        userService.update(user);
        return Result.success();
    }
(2)UserService层
(I)接口(UserService)
//更新
    void update(User user);
(II)实现类(UserServiceImpl)
 @Override
    public void update(User user) {
        //设置更新时间
        user.setUpdateTime(LocalDateTime.now());
        userMapper.update(user);
    }
(3)UserMapper层
//更新
    @Update("update user set nickname=#{nickname},email=#{email},update_time=#{updateTime} where id =#{id}")
    void update(User user);

五、postman测试程序

(1)写好所需主逻辑,重启工程。
(2)打开postman测试接口。

(3)查看当前数据库表中已经注册的用户。

(也就是查看其id,然后拿去测试"更新"操作)

(4)点击测试,发现问题(需要登录认证)


  • 重新登录,获取最新JWT令牌,然后赋值给请求头。


  • 请求头:Authorization


  • 再次测试。

  • 成功更新数据库用户表(user)里面的对应字段。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

岁岁岁平安

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值