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);
- }
复制代码 跟之前对比,代码更加优雅

4 返回给前端效果图
返回给前端的响应结果- {
- "code": 0,
- "data": {
- "id": 10,
- "username": "admin"
- },
- "message": "success",
- "description": ""
- }
复制代码

总结
通过封装ResultVO通用返回结果对象之后,保证了后端跟前端视图对象(VO)的统一。
本文由博客一文多发平台 OpenWrite 发布!
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |