1.首先创建一个枚举,列举常用的返回标志以及状态码
public enum ResultStatus implements Serializable{
SUCCESS(200); //成功
FALL(400); //失败
UNAUTHORIZED(401); //未认证
NOT_FOUND(404); //找不到路径
INTERNAL_SERCER_ERROR(500); //服务器内部错误
public Integer code;
public ResultStatus(Integer code){
this.code =code;
}
}
2.返回实体
public class Result<T> {
private int code;
private String message;
private T data;
//省略set get方法
}
3.响应生成工具类
public class ResultGenerator {
private static final String DEFAULT_SUCESS_MESSAGE ="SUCCESSS";
//无返回数据的成功响应
public static<T> Result<T> genSucesssResult( ){
Result<T> result =new Result<>();
result.setCode(ResultStatus.SUCESS.code);
result.setMessage(DEFAULT_SUCESS_MESSAGE );
return result;
}
//有返回数据的成功响应
public static<T> Result<T> genSucessResult(T data){
Result<T> result =new Result<>();
result.setCode(ResultStatus.SUCESS.code);
result.setMessage(DEFAULT_SUCESS_MESSAGE );
result.setData(data);
return result;
}
//指定code码带返回数据的成功响应
public static<T> Result<T> genSuccessResult(T data, int code){
Result<T> result =new Result<>();
result.setCode(code);
result.setMessage(DEFAULT_SUCESS_MESSAGE );
result.setData(data);
return result;
}
//无参的失败返回响应
public static<T> Result<T> genFailResult( ) {
Result<T> result =new Result<>();
result.setCode(ResultStatus.FALL.code);
result.setMessage("操作失败,请稍后重试!" );
return result;
}
//有返回数据的失败返回响应
public static<T> Result<T> genFailResult(T data) {
Result<T> result =new Result<>();
result.setCode(ResultStatus.FALL.code);
result.setMessage("操作失败,请稍后重试!" );
result.setData(data);
return result;
}
//自定义返回提示信息,无返回数据失败响应
public static<T> Result<T> genFailResult(String message){
Result<T> result =new Result<>();
result.setCode(ResultStatus.FALL.code);
result.setMessage(message);
return result;
}
}