通用返回结果类ResultVO

打印 上一主题 下一主题

主题 875|帖子 875|积分 2625

1. 定义通用返回结果类

​                        定义ResultVO类,作返回给前端的对象结构,主要有4个字段

  • code : 错误码
  • data :  内容
  • message : 消息
  • description : 具体描述
  1. import lombok.Data;
  2. import java.io.Serializable;
  3. /**
  4. * 通用返回结果类
  5. * @param <T>
  6. */
  7. @Data
  8. public class ResultVO<T> implements Serializable {
  9.     /**
  10.      * 错误码
  11.      */
  12.     private int code;
  13.     /**
  14.      * 内容
  15.      */
  16.     private T data;
  17.     /**
  18.      * 消息
  19.      */
  20.     private String message;
  21.     /**
  22.      * 描述
  23.      */
  24.     private String description;
  25.     public ResultVO(int code, T data, String message, String description) {
  26.         this.code = code;
  27.         this.data = data;
  28.         this.message = message;
  29.         this.description = description;
  30.     }
  31.     public ResultVO(int code, T data) {
  32.         this(code,data,"","");
  33.     }
  34.     public ResultVO(int code, T data, String message) {
  35.         this(code,data,message,"");
  36.     }
  37.    
  38. }
复制代码
2 工具类
  1. /**
  2. * 通用返回响应工具类
  3. *
  4. * @author leovany
  5. * @date 2023/09/23
  6. */
  7. public class ResultUtils {
  8.     /**
  9.      * 成功
  10.      *
  11.      * @param data 数据
  12.      * @return {@link ResultVO}<{@link T}>
  13.      */
  14.     public static <T> ResultVO<T> success(T data) {
  15.         return new ResultVO<T>(0, data, "success");
  16.     }
  17.     /**
  18.      * 错误
  19.      *
  20.      * @param code        错误码
  21.      * @param message     信息
  22.      * @param description 描述
  23.      * @return {@link ResultVO}
  24.      */
  25.     public static ResultVO error(int code, String message, String description) {
  26.         return new ResultVO<>(code, null, message, description);
  27.     }
  28. }
复制代码
3 使用


  • 返回值用 ResultVO封装
  • 成功返回:ResultUtils.success(XX);
  • 失败失败:ResultUtils.error(code,message,description);
  1. @PostMapping("/login")
  2. public ResultVO<User> userLogin(@RequestBody UserLoginRequest userLoginRequest, HttpServletRequest request) {
  3.     String userAccount = userLoginRequest.getUserAccount();
  4.     String userPassword = userLoginRequest.getUserPassword();
  5.     // 参数校验
  6.     if (StringUtils.isAnyBlank(userAccount, userPassword)) {
  7.         return ResultUtils.error(40000,"参数错误","参数不能为空");
  8.     }
  9.     // 从数据库查找用户
  10.     User user = userService.doLogin(userAccount, userPassword, request);
  11.     return ResultUtils.success(user);
  12. }
复制代码
跟之前对比,代码更加优雅

4 返回给前端效果图

返回给前端的响应结果
  1. {
  2.     "code": 0,
  3.     "data": {
  4.         "id": 10,
  5.         "username": "admin"
  6.     },
  7.     "message": "success",
  8.     "description": ""
  9. }
复制代码

  • 成功


  • 失败

总结

​        通过封装ResultVO通用返回结果对象之后,保证了后端跟前端视图对象(VO)的统一。
本文由博客一文多发平台 OpenWrite 发布!

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

花瓣小跑

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表