如果系统中接口不统一返回结果,常规的返回结果有 sting json void error(code),没有给前端一个统一的格式,前端人员不知道如何处理返回值
统一返回结构
@Data
public class ResultData<T> {
private int code;
private String message;
private T data;
private long timestamp;
public ResultData() {
this.timestamp = System.currentTimeMillis()
}
public static <T> ResultData<T> success(T data) {
ResultData<T> resultData = new ResultData<>();
resultData.setData(data);
resultData.setMessage(ReturnCode.RC100.getMessage());
resultData.setCode(ReturnCode.RC100.getCode());
return resultData;
}
public static <T> ResultData<T> fail(int code, String message) {
ResultData<T> resultData = new ResultData<>();
resultData.setMessage(message);
resultData.setCode(code);
return resultData;
}
}
public enum ReturnCode {
/**
* 操作成功
*/
RC100(100, "操作成功");
/**
* 操作失败
*/
RC500(500, "操作失败");
private final int code;
private final String message;
ReturnCode(int code, String message) {
this.code = code;
this.message = message;
}
public int getCode() {
return code;
}
public String getMessage() {
return message;
}
}
全局异常处理
@RestControllerAdvice
public class GlobalExceptionHandler {
@ExceptionHandler(Exception.class)
@ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR)
public ResultData<String> exception(Exception e) {
return ResultData.fail(ReturnCode.RC500.getCode(), "fail");
}
}