实战篇06:更新用户头像

实战篇06:更新用户头像

一、接口信息

1.1 基本信息

请求路径:/user/updateAvatar

请求方式:PATCH

接口描述:该接口用于更新已登录用户的头像

1.2 请求参数

请求参数格式:queryString

请求参数说明:

参数名称说明类型是否必须备注
avatarUrl头像地址stringurl地址

请求数据样例:

avatarUrl=https://big-event-gwd.oss-cn-beijing.aliyuncs.com/9bf1cf5b-1420-4c1b-91ad-e0f4631cbed4.png

1.3 响应数据

响应数据类型:application/json

响应参数说明:

名称类型是否必须默认值备注其他信息
codenumber必须响应码, 0-成功,1-失败
messagestring非必须提示信息
dataobject非必须返回的数据

响应数据样例:

{
    "code": 0,
    "message": "操作成功",
    "data": null
}

二、业务流程

Controller层使用patch方式接收参数,并使用Service和Mapper提供的头像更新函数进行头像更新

在这里插入图片描述

三、编写Controller

UserController中新增updateAvatar方法,接收参数是使用@RequestParam关键字表明参数需要从请求中获取

@PatchMapping("/updateAvatar")
public Result updateAvatar(@RequestParam String avatarUrl){
    userService.updateAvatar(avatarUrl);
    return Result.success();
}

四、编写Service

  1. 在接口类中新增更新头像方法
  2. 在实现类中实现更新头像方法:通过JWT的token获取到用户id,对此id进行头像更新
public interface UserService {
// 根据用户名查询用户
User findByUserName(String username);

// 注册
void register(String username, String password);

// 更新
void update(User user);

// 更新头像
void updateAvatar(String avatarUrl);
}

@Override
public void updateAvatar(String avatarUrl) {
    Map<String,Object> map = ThreadLocalUtil.get();
    Integer id = (Integer) map.get("id");
    userMapper.updateAvatar(avatarUrl, id);
}

五、编写Mapper

对输入参数进行sql更新,其中update_time使用sql语句now()获取当前时间进行更新

@Update("update user set user_pic=#{avatarUrl},update_time=now() where id=#{id}")
void updateAvatar(String avatarUrl, Integer id);

六、参数校验

在UserController层使用@URL关键字对输入参数avatarUrl进行URL地址校验

@PatchMapping("/updateAvatar")
public Result updateAvatar(@RequestParam @URL String avatarUrl){
    userService.updateAvatar(avatarUrl);
    return Result.success();
}
  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值