自定义的返回的数据格式如下,以后工作可能是类似的数据格式
可以将这个也放在一个公共模块里,类似swagger一样通过引入模块来用这个公共类
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.HashMap;
import java.util.Map;
//统一返回结果
@Data
public class R {
@ApiModelProperty(value = "是否成功")
private Boolean success;
@ApiModelProperty(value = "返回码")
private Integer code;
@ApiModelProperty(value = "返回消息")
private String message;
@ApiModelProperty(value = "返回数据")
private Map<String, Object> data = new HashMap<String, Object>();
//把构造方法私有,别人不能new这个类
private R() {}
//链式编程
//静态方法 成功(静态方法可以通过类.方法来使用)
public static R ok() {
R r = new R();
r.setSuccess(true);
r.setCode(ResultCode.SUCCESS);
r.setMessage("成功");
return r;
}
//静态方法 失败(静态方法可以通过类.方法来使用)
public static R error() {
R r = new R();
r.setSuccess(false);
r.setCode(ResultCode.ERROR);
r.setMessage("失败");
return r;
}
//返回this就是当前的r实例对象,为了实现链式编程才返回this
public R success(Boolean success){
this.setSuccess(success);
return this;
}
public R message(String message){
this.setMessage(message);
return this;
}
public R code(Integer code){
this.setCode(code);
return this;
}
public R data(String key, Object value){
this.data.put(key, value);
return this;
}
public R data(Map<String, Object> map){
this.setData(map);
return this;
}
}
状态码用一个接口来定义
public interface ResultCode {
public static Integer SUCCESS = 20000;//响应码,20000表示成功
public static Integer ERROR = 20001;//20001表示失败
}