目的:给返回对象补充一些信息,告诉前端这个请求在业务层面上是成功还是失败,以及具体的描述信息。
我们需要自定义错误码(因为前端的HTTP状态码默认的值比较少)和正常错误返回类。
ErrorCode :
package com.heo.ezyuserbackend.common;
public enum ErrorCode {
SUCCESS(0, "ok", ""),
PARAMS_ERROR(40000, "请求参数错误", ""),
NULL_ERROR(40001, "请求参数为空", ""),
NOT_LOGIN(40100, "未登录", ""),
NO_AUTH(40101, "无权限", ""),
SYSTEM_ERROR(50000,"系统内部异常","");
private final int code;
/**
* 状态码信息
*/
private final String message;
public int getCode() {
return code;
}
public String getMessage() {
return message;
}
public String getDescription() {
return description;
}
/**
* 状态码描述(详情)
*/
private final String description;
ErrorCode(int code, String message, String description) {
this.code = code;
this.message = message;
this.description = description;
}
}
BaseResponse:文章来源:https://www.toymoban.com/news/detail-820046.html
package com.heo.ezyuserbackend.common;
import lombok.Data;
import java.io.Serializable;
/**
* 通用返回类
*
* @param <T>
*/
@Data
public class BaseResponse<T> implements Serializable {
private int code;
private T data;
private String message;
private String description;
public BaseResponse(int code, T data, String message, String description) {
this.code = code;
this.data = data;
this.message = message;
this.description = description;
}
public BaseResponse(int code, T data,String message) {
this(code, data, message,"");
}
public BaseResponse(int code, T data) {
this(code, data, "", "");
}
public BaseResponse(ErrorCode errorCode) {
this(errorCode.getCode(), null, errorCode.getMessage(), errorCode.getDescription());
}
}
ResultUtil :文章来源地址https://www.toymoban.com/news/detail-820046.html
package com.heo.ezyuserbackend.common;
import com.fasterxml.jackson.databind.ser.Serializers;
/**
* 返回工具类
*/
public class ResultUtil {
/**
* 成功
*
* @param data
* @param <T>
* @return
*/
public static <T> BaseResponse<T> success(T data) {
return new BaseResponse<>(0, data, "ok");
}
/**
* 失败
*
* @param errorCode
* @return
*/
public static <T> BaseResponse<T> error(ErrorCode errorCode) {
return new BaseResponse<>(errorCode);
}
/**
* 失败
*
* @param code
* @param message
* @param description
* @param <T>
* @return
*/
public static <T> BaseResponse<T> error(int code, String message, String description) {
return new BaseResponse<>(code, null, message, description);
}
/**
* 失败
*
* @param errorCode
* @param message
* @param description
* @param <T>
* @return
*/
public static <T> BaseResponse<T> error(ErrorCode errorCode, String message, String description) {
return new BaseResponse<>(errorCode.getCode(), null, message, description);
}
/**
* 失败
*
* @param errorCode
* @param description
* @return
*/
public static BaseResponse error(ErrorCode errorCode, String description) {
return new BaseResponse<>(errorCode.getCode(), errorCode.getMessage(), description);
}
}
到了这里,关于自定义通用返回对象的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!