花瓣小跑 发表于 2023-10-1 22:32:37

通用返回结果类ResultVO

1. 定义通用返回结果类

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

[*]code : 错误码
[*]data :内容
[*]message : 消息
[*]description : 具体描述
import lombok.Data;
import java.io.Serializable;

/**
* 通用返回结果类
* @param <T>
*/
@Data
public class ResultVO<T> implements Serializable {

    /**
   * 错误码
   */
    private int code;
    /**
   * 内容
   */
    private T data;
    /**
   * 消息
   */
    private String message;
    /**
   * 描述
   */
    private String description;

    public ResultVO(int code, T data, String message, String description) {
      this.code = code;
      this.data = data;
      this.message = message;
      this.description = description;
    }

    public ResultVO(int code, T data) {
      this(code,data,"","");
    }

    public ResultVO(int code, T data, String message) {
      this(code,data,message,"");
    }
   
}2 工具类

/**
* 通用返回响应工具类
*
* @author leovany
* @date 2023/09/23
*/
public class ResultUtils {

    /**
   * 成功
   *
   * @param data 数据
   * @return {@link ResultVO}<{@link T}>
   */
    public static <T> ResultVO<T> success(T data) {
      return new ResultVO<T>(0, data, "success");
    }

    /**
   * 错误
   *
   * @param code      错误码
   * @param message   信息
   * @param description 描述
   * @return {@link ResultVO}
   */
    public static ResultVO error(int code, String message, String description) {
      return new ResultVO<>(code, null, message, description);
    }

}3 使用


[*]返回值用 ResultVO封装
[*]成功返回:ResultUtils.success(XX);
[*]失败失败:ResultUtils.error(code,message,description);
@PostMapping("/login")
public ResultVO<User> userLogin(@RequestBody UserLoginRequest userLoginRequest, HttpServletRequest request) {
    String userAccount = userLoginRequest.getUserAccount();
    String userPassword = userLoginRequest.getUserPassword();
    // 参数校验
    if (StringUtils.isAnyBlank(userAccount, userPassword)) {
      return ResultUtils.error(40000,"参数错误","参数不能为空");
    }
    // 从数据库查找用户
    User user = userService.doLogin(userAccount, userPassword, request);
    return ResultUtils.success(user);
}跟之前对比,代码更加优雅
https://img2023.cnblogs.com/other/3272173/202309/3272173-20230923233537275-949516853.png
4 返回给前端效果图

返回给前端的响应结果
{
    "code": 0,
    "data": {
      "id": 10,
      "username": "admin"
    },
    "message": "success",
    "description": ""
}

[*]成功
https://img2023.cnblogs.com/other/3272173/202309/3272173-20230923233537878-2114116439.png

[*]失败
https://img2023.cnblogs.com/other/3272173/202309/3272173-20230923233538400-1808820767.png
总结

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

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
页: [1]
查看完整版本: 通用返回结果类ResultVO