Result:服务端响应报文格式
package com.demo.common.result.base;
import com.alibaba.fastjson.annotation.JSONField;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
@ApiModel("服务端响应报文格式")
public class Result<T> implements Serializable {
private static final long serialVersionUID = -1791232625706807828L;
@ApiModelProperty("响应头数据")
@JSONField(
name = "head",
ordinal = 0
)
private ResultHead head;
@ApiModelProperty("响应体数据")
@JSONField(
name = "body",
ordinal = 1
)
protected T body;
public Result() {
}
public T getBody() {
return this.body;
}
public void setBody(T body) {
this.body = body;
}
public ResultHead getHead() {
return this.head;
}
public void setHead(ResultHead head) {
this.head = head;
}
public String toString() {
return "Result{head=" + this.getHead().toString() + ",data=" + this.body + '}';
}
}
ResultHelper:响应报文封装
//服务器响应报文
package com.demo.common.result.base;
import com.demo.common.result.enums.CodeEnum;
import io.swagger.annotations.ApiModel;
import java.io.Serializable;
import javax.xml.bind.annotation.XmlRootElement;
@ApiModel(
description = "服务端响应报文格式"
)
@XmlRootElement
public class ResultHelper<T> implements Serializable {
public ResultHelper() {
}
public static <T> Result setResultData(CodeEnum resultEnum, String message) {
ResultHead head = new ResultHead();
head.setCode(resultEnum.getKey() + "");
head.setMessage(resultEnum.getDesc());
head.setUrl("");
head.setSubCode("");
head.setSubMessage(message);
Result result = new Result();
result.setHead(head);
result.setBody("");
return result;
}
public static <T> Result setResultData(CodeEnum resultEnum, T data) {
ResultHead head = new ResultHead();
head.setCode(resultEnum.getKey() + "");
head.setMessage(resultEnum.getDesc());
head.setUrl("");
head.setSubCode("");
head.setSubMessage("");
Result result = new Result();
result.setHead(head);
result.setBody(data);
return result;
}
public static <T> Result setResultData(T data) {
return setResultData(CodeEnum.SUCCESS, data);
}
public static Result setResultData(CodeEnum resultEnum) {
ResultHead head = new ResultHead();
head.setCode(resultEnum.getKey() + "");
head.setMessage(resultEnum.getDesc());
head.setUrl("");
head.setSubCode("");
head.setSubMessage("");
Result result = new Result();
result.setHead(head);
result.setBody("");
return result;
}
}
CodeEnum :状态码枚举类
//状态码枚举
package com.demo.common.result.enums;
public enum CodeEnum {
SUCCESS(200, "请求成功"),
SUCCESS_BUT_NO_DATA(200, "请求成功,但是没有符合要求的数据"),
SUCCESS_BUT_BUSINESS_DEAL(200, "请求成功,但是业务处理上有处理"),
SUCCESS_BUT_CHANNEL_NOT_ALLOWED(200, "请求成功,但是该操作不允许在当前渠道执行"),
BAD_REQUEST(400, "请求参数错误"),
BAD_REQUEST_ILLEGAL_PARAM(400, "请求参数错误"),
BAD_REQUEST_AUTH(401, "认证失败"),
BAD_REQUEST_AUTH_NO_SESSION(401, "认证失败,用户未登录"),
BAD_REQUEST_FORBIDDEN(403, "资源无权限"),
BAD_REQUEST_FORBIDDEN_FALSE_CHANNEL(403, "资源无权限,该操作不允许在当前渠道执行"),
BAD_REQUEST_NOTFOUND(404, "资源不存在"),
INTERNAL_SERVER_ERROR(500, "服务器错误");
private int key;
private String desc;
private CodeEnum(int key, String desc) {
this.key = key;
this.desc = desc;
}
public String getDesc() {
return this.desc;
}
public void setDesc(String desc) {
this.desc = desc;
}
public int getKey() {
return this.key;
}
public void setKey(int key) {
this.key = key;
}
}