定义接口状态码枚举类
public enum ResponseCode {
SUCCESS(200, "请求成功"),
FAILED(500, "请求失败"),
VALIDATE_FAILED(404, "参数检验失败"),
UNAUTHORIZED(401, "暂未登录或token已经过期"),
FORBIDDEN(403, "没有相关权限");
private long code;
private String message;
ResponseCode(long code, String message) {
this.code = code;
this.message = message;
}
public long getCode() {
return code;
}
public String getMessage() {
return message;
}
}
对接口返回结果进行封装
public class CommonResponse<T> {
private long code;
private String message;
private T data;
protected CommonResponse() {
}
protected CommonResponse(long code, String message, T data) {
this.code = code;
this.message = message;
this.data = data;
}
/**
* 成功返回结果
*
* @param data 获取的数据
*/
public static <T> CommonResponse<T> success(T data) {
return new CommonResponse<T>(ResponseCode.SUCCESS.getCode(), ResponseCode.SUCCESS.getMessage(), data);
}
/**
* 成功返回结果
*
* @param data 获取的数据
* @param message 提示信息
*/
public static <T> CommonResponse<T> success(T data, String message) {
return new CommonResponse<T>(ResponseCode.SUCCESS.getCode(), message, data);
}
/**
* 失败返回结果
* @param errorCode 错误码
*/
public static <T> CommonResponse<T> failed(ResponseCode errorCode) {
return new CommonResponse<T>(errorCode.getCode(), errorCode.getMessage(), null);
}
/**
* 失败返回结果
* @param message 提示信息
*/
public static <T> CommonResponse<T> failed(String message) {
return new CommonResponse<T>(ResponseCode.FAILED.getCode(), message, null);
}
/**
* 失败返回结果
*/
public static <T> CommonResponse<T> failed() {
return failed(ResponseCode.FAILED);
}
/**
* 参数验证失败返回结果
*/
public static <T> CommonResponse<T> validateFailed() { return failed(ResponseCode.VALIDATE_FAILED); }
/**
* 参数验证失败返回结果
* @param message 提示信息
*/
public static <T> CommonResponse<T> validateFailed(String message) {
return new CommonResponse<T>(ResponseCode.VALIDATE_FAILED.getCode(), message, null);
}
/**
* 未登录返回结果
*/
public static <T> CommonResponse<T> unauthorized(T data) {
return new CommonResponse<T>(ResponseCode.UNAUTHORIZED.getCode(), ResponseCode.UNAUTHORIZED.getMessage(), data);
}
/**
* 未授权返回结果
*/
public static <T> CommonResponse<T> forbidden(T data) {
return new CommonResponse<T>(ResponseCode.FORBIDDEN.getCode(), ResponseCode.FORBIDDEN.getMessage(), data);
}
public long getCode() {
return code;
}
public void setCode(long code) {
this.code = code;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
public T getData() {
return data;
}
public void setData(T data) {
this.data = data;
}
}
使用的Demo
@Controller
@Api(tags = "用户管理")
@RequestMapping(value = "/user")
public class UserController {
@Autowired
UserService userService;
@ApiOperation("获取用户列表")
@ResponseBody
@GetMapping(value = "/getUserList")
public CommonResponse getUserList(){
return CommonResponse.success(userService.getUserList());
}
}