统一结果返回
枚举类已经做entity的属性,比如性别,星期等,都是更多的应用则是做统一结果返回
统一返回数据格式没有固定的格式,只要能描述清楚返回的数据状态以及要返回的具体数据就可以。但是一般会包含状态码、返回消息、数据这几部分内容
结果状态码
public enum ResultCode{
SUCCESS(1000, "成功"),
RESOURCE_NOT_FOUND(1001, "未找到该资源"),
REQUEST_VALIDATION_FAILED(1002, "请求数据格式验证失败");
private final int code;
private final String message;
private ResultCode(int code, String message) {
this.code = code;
this.message = message;
}
public int getCode() {
return code;
}
public String getMessage() {
return message;
}
@Override
public String toString() {
return"ResultCode{" +
"code=" + code +
", message='" + message +
'}';
}
}
全局统一返回结果,一般要包括全参构造、无参构造、getset方法等,可以配合enum使用,也可以单独使用,以下是一个单独使用的例子
@Data
public class Result<T> {
private static final Integer OK = 0;
private static final Integer ERROR = 500;
private Integer code;
private String message;
private T data;
public static <T> Result<T> success() {
return new Result(OK, "操作成功", (Object) null);
}
public static <T> Result<T> success(T data) {
return new Result(OK, "操作成功", data);
}
public static <T> Result<T> error(String msg) {
return new Result(ERROR, msg, (Object) null);
}
public static <T> Result<T> error(int status, String msg) {
return new Result(status, msg, (Object) null);
}
public static <T> Result<T> errorWithData(String msg, T data) {
return new Result(ERROR, msg, data);
}
public static <T> Result<T> build(Integer status, String message, T data) {
return new Result(status, message, data);
}
private Result() {
}
private Result(Integer code, String message, T data) {
this.code = code;
this.message = message;
this.data = data;
}
}