java中服务器响应报文格式统一

 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;
    }
}

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值