接口文档:
开发前我们先看一下接口文档:
这是实现的预想效果:
实现思路:
设计一下我们的实现思路
拿发迹伙实操:
1.controller
界说一个方法去修改用户:
留意!是【put请求】
- //更改用户信息
- @PutMapping("/update")
- public Result update(@RequestBody User user) {
- //更新用户信息
- userService.update(user);
- return Result.success();
- }
复制代码
2.service接口
3.service实现类
记得传入时间
- //更改用户信息
- @Override
- public void update(User user) {
- user.setUpdate_time(LocalDateTime.now());
- //调用Mapper更新用户信息
- userMapper.update(user);
- }
复制代码
4.Mapper
- //更新用户信息
- @Insert("UPDATE user SET nickname = #{nickname}, email = #{email}, update_time = now() WHERE id = #{id}")
- void update(User user);
复制代码
测试案例:
带入json格式的代码
- {
- "id":1,
- "username":"wwwwwww",
- "nickname":"wba",
- "email":"wacc"
- }
复制代码
成功效果:
参数校验:
之前我们是简单开发了更新用户信息的操作,但是接口文档的话对一些参数会有要求,如:
我们在之前有学过参数校验这一块,但是那些都是袒露出参数的,我们这次的更改是传入了实体类,如下:
解决:
我们碰到以上情况,可以在实体类下对应的字段去参加相干的注解:
Patten 自界说约束条件
步骤1:
在实体类参加相干的约束注释:
- package org.huangyingyuan.pojo;
- import com.fasterxml.jackson.annotation.JsonIgnore;
- import jakarta.validation.constraints.Email;
- import jakarta.validation.constraints.NotEmpty;
- import jakarta.validation.constraints.NotNull;
- import jakarta.validation.constraints.Pattern;
- import lombok.Data;
- import java.time.LocalDateTime;
- @Data
- public class User {
- @NotNull
- private Integer id;
- private String title;
- @NotEmpty
- @Pattern(regexp = "^\\S{1,10}$")
- private String nickname;
- private String content;
- @JsonIgnore
- private String password;
- private String username;
- @NotEmpty
- @Email
- private String email;
- private LocalDateTime create_time;
- private LocalDateTime update_time;
- }
复制代码
步骤2:
在controller带入的实体类参数前参加【@Validated注解】,使其在实体类字段中添加的注解才能生效
- //更改用户信息
- @PutMapping("/update")
- public Result update(@RequestBody @Validated User user) {
- //更新用户信息
- userService.update(user);
- return Result.success();
- }
复制代码
总结全部步骤:
以上是【更新用户具体信息的操作】
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |