ApiResponse.java
package org.darkroomlibrary.web.response;
import java.util.Objects;
/**
* Stable HTTP response envelope used by every JSON endpoint.
*/
public class ApiResponse<T> {
private Integer code;
private String msg;
private T data;
public ApiResponse() {
}
public ApiResponse(Integer code, String msg) {
this(code, msg, null);
}
public ApiResponse(Integer code, String msg, T data) {
this.code = Objects.requireNonNull(code, "code");
this.msg = Objects.requireNonNullElse(msg, "");
this.data = data;
}
public static <T> ApiResponse<T> success() {
return success((T) null);
}
public static <T> ApiResponse<T> success(T data) {
return new ApiResponse<>(ApiStatusCode.SUCCESS.value(), "操作成功", data);
}
public static <T> ApiResponse<T> success(String message) {
return new ApiResponse<>(ApiStatusCode.SUCCESS.value(), message);
}
public static <T> ApiResponse<T> success(String message, T data) {
return new ApiResponse<>(ApiStatusCode.SUCCESS.value(), message, data);
}
public static <T> ApiResponse<T> error(String message) {
return new ApiResponse<>(ApiStatusCode.BAD_REQUEST.value(), message);
}
public Integer getCode() {
return code;
}
public void setCode(Integer code) {
this.code = code;
}
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
public T getData() {
return data;
}
public void setData(T data) {
this.data = data;
}
@Override
public String toString() {
return "ApiResponse{code=" + code + ", msg='" + msg + "'}";
}
}