Use RestFul style interface programming-separation of front and back ends

One, create a return status code class
public interface ResultCode {
 
    public static Integer SUCCESS = 20000;
 
    public static Integer ERROR = 20001;
 
}
Two, create a unified result class
@Data
public class R {
 
    @ApiModelProperty(value = "Is it successful")
    private Boolean success;
 
    @ApiModelProperty(value = "Return Code")
    private Integer code;
 
    @ApiModelProperty(value = "Return message")
    private String message;
 
    @ApiModelProperty(value = "Return data")
    private Map<String, Object> data = new HashMap<String, Object>();
 
    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;
    }
 
    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;
    }
}
3. Generally, the tool class is placed in a public module. As long as the dependency of the public module is introduced in the corresponding service pom, you can use chain programming in the Controller method to return the corresponding data and status code to the front end
 
E.g:
Front-end effect:
{  
    "success": true, 
    "code": 20000, 
    "message": "成功", 
    "data": {}
}
 

Guess you like

Origin blog.csdn.net/weixin_43562937/article/details/106515792