后端接口统一返回响应对象

在项目开发中,通常返回给前端的都会是一个统一的返回响应对象,所以后端须要封装一个泛型类来做为响应对象,这样作的好处是先后端能统一接口返回,能够作规范的响应处理。前端

ServerResponse类json

@JsonSerialize(include =  JsonSerialize.Inclusion.NON_NULL)
// 保证序列化json的时候,若是是null的对象,key也会消失
public class ServerResponse<T> implements Serializable {
    private int status;
    private String msg;
    private T data;
 
    private ServerResponse(int status){
        this.status = status;
    }
    
    private ServerResponse(int status, T data){
        this.status = status;
        this.data = data;
    }
 
    private ServerResponse(int status, String msg, T data) {
        this.status = status;
        this.msg = msg;
        this.data = data;
    }
 
    private ServerResponse(int status, String msg) {
        this.status = status;
        this.msg = msg;
    }
       @JsonIgnore     
// 使之不在json序列化结果当中     public boolean isSuccess() {         return this.status == ResponseCode.SUCCESS.getCode();     }     public int getStatus() {         return status;     }     public T getData() {         return data;     }     public String getMsg() {         return msg;     }     public static <T> ServerResponse<T> createBySuccess() {         return new ServerResponse<T>(ResponseCode.SUCCESS.getCode());     }     public static <T> ServerResponse<T> createBySuccessMessage(String msg) {         return new ServerResponse<T>(ResponseCode.SUCCESS.getCode(), msg);     }     public static <T> ServerResponse<T> createBySuccess(T data) {         return new ServerResponse<T>(ResponseCode.SUCCESS.getCode(), data);     }     public static <T> ServerResponse<T> createBySuccess(String msg, T data) {         return new ServerResponse<T>(ResponseCode.SUCCESS.getCode(), msg,data);     }     public static <T> ServerResponse<T> createByError() {         return new ServerResponse<T>(ResponseCode.ERROR.getCode(), ResponseCode.ERROR.getDesc());     }     public static <T> ServerResponse<T> createByErrorMessage(String errorMessage) {         return new ServerResponse<T>(ResponseCode.ERROR.getCode(), errorMessage);     }     public static <T> ServerResponse<T> createByErrorCodeMessage(int errorCode, String errorMessage) {         return new ServerResponse<T>(errorCode, errorMessage);     } }

ResponseCode枚举类后端

public enum ResponseCode {
    SUCCESS(0, "SUCCESS"),
    ERROR(1, "ERROR"),
    NEED_LOGIN(10, "NEED_LOGIN"),
    ILLEGAL_ARGUMENT(2, "ILLEGAL_ARGUMENT");
 
    private final int code;
    private final String desc;
 
    ResponseCode(int code,String desc) {
        this.code = code;
        this.desc = desc;
    }
 
    public int getCode() {
        return code;
    }
    
    public String getDesc() {
        return desc;
    }
}

没有什么说的,直接贴代码就完事了,实际项目能够根据实际状况进行微调。this

 

"若是只有这一次,我想我是不会放手的。"spa

相关文章
相关标签/搜索