Java封装接口返回统一格式
Java封装接口返回统一格式
因为我们每个模块是单独部署的,定义统一格式方便处理
public class Result implements Serializable {
private static final long serialVersionUID = -3948389268046368059L;
private String code;
private String msg;
private Object data;
public Result() {}
public Result(String code, String msg) {
this.code = code;
this.msg = msg;
}
public static Result success() {
Result Result = new Result();
Result.setCode(ResponseCode.SUCCESS);
return Result;
}
public static Result success(Object data) {
Result Result = new Result();
Result.setCode(ResponseCode.SUCCESS);
Result.setData(data);
return Result;
}
public static Result failure(String code, String msg) {
Result Result = new Result();
Result.setCode(code);
Result.setMsg(msg);
return Result;
}
public static Result failure(String code, String msg, Object data) {
Result Result = new Result();
Result.setCode(code);
Result.setMsg(msg);
Result.setData(data);
return Result;
}
public String getCode() {
return this.code;
}
public void setCode(final String code) {
this.code = code;
}
public String getMsg() {
return this.msg;
}
public void setMsg(final String msg) {
this.msg = msg;
}
public Object getData() {
return this.data;
}
public void setData(final Object data) {
this.data = data;
}
}
因为我们项目有约定,code值只能返回下面这些,msg自定义,所以不能采用枚举,用枚举会更简洁。
public final class ResponseCode {
public static final String SUCCESS = "100"; //成功
public static final String ERROR_999 = "999";// 系统异常
public static final String ERROR_PARAMS_VALIDATOR="200"; //参数验证错误
public static final String ERROR_SERVICE_VALIDATOR="300"; //业务验证错误
public static final String ERROR_DATA_VALIDATOR="400"; //系统数据错误
}
用法:
@RequestMapping("save")
public Result save(@RequestBody Register register) {
int result = mapper.insert(register);
if (result == 1) {
return Result.success();
}
return Result.failure(ResponseCode.ERROR_999,"系统异常");
}
下面是采用枚举的方式:
public class Result implements Serializable {
private static final long serialVersionUID = -3948389268046368059L;
private Integer code;
private String msg;
private Object data;
public Result() {}
public Result(Integer code, String msg) {
this.code = code;
this.msg = msg;
}
public static Result success() {
Result result = new Result();
result.setResultCode(ResultCode.SUCCESS);
return result;
}
public static Result success(Object data) {
Result result = new Result();
result.setResultCode(ResultCode.SUCCESS);
result.setData(data);
return result;
}
public static Result failure(ResultCode resultCode) {
Result result = new Result();
result.setResultCode(resultCode);
return result;
}
public static Result failure(ResultCode resultCode, Object data) {
Result result = new Result();
result.setResultCode(resultCode);
result.setData(data);
return result;
}
public void setResultCode(ResultCode code) {
this.code = code.code();
this.msg = code.message();
}
public Integer getCode() {
return this.code;
}
public void setCode(final Integer code) {
this.code = code;
}
public String getMsg() {
return this.msg;
}
public void setMsg(final String msg) {
this.msg = msg;
}
public Object getData() {
return this.data;
}
public void setData(final Object data) {
this.data = data;
}
}
public enum ResultCode {
// 自定义状态码
SUCCESS(0, "成功"),
FAIL(1,"失败");
private Integer code;
private String message;
ResultCode(Integer code, String message) {
this.code = code;
this.message = message;
}
public Integer code() {
return this.code;
}
public String message() {
return this.message;
}
public static String getMessage(String name) {
for (ResultCode item : ResultCode.values()) {
if (item.name().equals(name)) {
return item.message;
}
}
return name;
}
public static Integer getCode(String name) {
for (ResultCode item : ResultCode.values()) {
if (item.name().equals(name)) {
return item.code;
}
}
return null;
}
}
用法:
@RequestMapping("save")
public Result save(@RequestBody Register register) {
int result = mapper.insert(register);
if (result == 1) {
return Result.success();
}
return Result.failure(ResultCode.FAIL);
}
版权声明:本文为xiaogc_a原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。