首先是一个统一返回格式的主类
ApiResult.java
@Data
@NoArgsConstructor
@AllArgsConstructor
public class ApiResult {
private int code;
private String msg;
private Object data;
public ApiResult(ApiEnum apiEnum,Object data) {
this.code = apiEnum.getCode();
this.msg = apiEnum.getMsg();
this.data = data;
}
public ApiResult(ApiEnum apiEnum) {
this.code = apiEnum.getCode();
this.msg = apiEnum.getMsg();
this.data = null;
}
public ApiResult(String msg) {
this.msg = msg;
}
}
然后是运用枚举定义的一系列成功或者失败的状态码及返回信息
ApiEnum.java
public enum ApiEnum {
SUCCESS(200,"成功"),
FAIL(500,"失败"),
FAIL_LOGIN(501,"登录失败");
private int code;
private String msg;
public int getCode() {
return code;
}
public void setCode(int code) {
this.code = code;
}
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
ApiEnum(int code, String msg) {
this.code = code;
this.msg = msg;
}
}
为了更明了,加上一个工具类,统一返回成功或者失败
R.java
public class R {
public static ApiResult ok(){
return new ApiResult(ApiEnum.SUCCESS);
}//返回没有数据的成功
public static ApiResult ok(Object data){
return new ApiResult(ApiEnum.SUCCESS,data);
}//返回有数据的成功,如登录等
public static ApiResult error(ApiEnum apiEnum){
ApiResult apiResult = new ApiResult();
apiResult.setCode(apiEnum.getCode());
apiResult.setMsg(apiEnum.getMsg());
return apiResult;
}//返回一般失败处理
public static ApiResult error(String msg){
ApiResult apiResult = new ApiResult();
apiResult.setCode(500);
apiResult.setMsg(msg);
return apiResult;
}//返回异常处理
}
使用结果如下:
@RestController
public class HelloController {
@RequestMapping("/hello")
public ApiResult hello(){
return R.error(ApiEnum.FAIL_LOGIN);
}
}