Java 一个API接口的返回模型类

package cn.com.unilog.crm.utils;

/**
 * API接口请求返回的模型类
 *
 * @author cr
 * @date 2019-06-05
 */
public class MyResult {

    private MyResult() { }
    
    // region 属性区

    /**
     * 服务名称
     */
    private String serviceName = "China-Life-Insurance";

    /**
     * API请求的地址
     * 例如: /usc-zuul/base/user
     */
    private String path;

    /**
     * 请求状态
     */
    private String status;

    /**
     * 状态码
     */
    private String code;

    /**
     * 说明
     */
    private String description;

    /**
     * 返回的数据
     */
    private Object data;

    // endregion

    // region 返回调用区

    /**
     * 请求错误
     *
     * @date 2019-06-05
     * @author cr
     */
    public static MyResult error() {
        return init(null, BaseEnum.STATUS_ERROR.value, BaseEnum.DESCRIPTION_ERROR.value, BaseEnum.CODE_ERROR.value, null);
    }

    /**
     * 请求错误,设置错误说明
     *
     * @param description 说明
     * @date 2019-06-05
     * @author cr
     */
    public static MyResult error(String description) {
        return init(null, BaseEnum.STATUS_ERROR.value, description, BaseEnum.CODE_ERROR.value, null);
    }

    /**
     * 请求错误,设置错误说明和对应的状态码
     *
     * @param description 说明
     * @param code        状态码
     * @date 2019-06-05
     * @author cr
     */
    public static MyResult error(String description, String code) {
        return init(null, BaseEnum.STATUS_ERROR.value, description, code, null);
    }

    /**
     * 请求错误,设置说明,状态码, 对应的返回数据
     *
     * @param description 说明
     * @param code        状态码
     * @param data        返回的数据
     * @date 2019-06-05
     * @author cr
     */
    public static MyResult error(String description, String code, Object data) {
        return init(null, BaseEnum.STATUS_ERROR.value, description, code, data);
    }

    /**
     * 请求错误,记录地址
     *
     * @date 2019-06-05
     * @author cr
     */
    public static MyResult errorPath(String path) {
        return init(path, BaseEnum.STATUS_ERROR.value, BaseEnum.DESCRIPTION_ERROR.value, BaseEnum.CODE_ERROR.value, null);
    }

    /**
     * 请求错误,记录地址,设置错误说明
     *
     * @date 2019-06-05
     * @author cr
     */
    public static MyResult errorPath(String path, String description) {
        return init(path, BaseEnum.STATUS_ERROR.value, description, BaseEnum.CODE_ERROR.value, null);
    }

    /**
     * 请求错误,记录地址,设置错误说明和对应的状态码
     *
     * @param description 说明
     * @param code        状态码
     * @date 2019-06-05
     * @author cr
     */
    public static MyResult errorPath(String path, String description, String code) {
        return init(path, BaseEnum.STATUS_ERROR.value, description, code, null);
    }

    /**
     * 请求错误,设置说明,状态码, 对应的返回数据
     *
     * @param description 说明
     * @param code        状态码
     * @param data        返回的数据
     * @date 2019-06-05
     * @author cr
     */
    public static MyResult errorPath(String path, String description, String code, Object data) {
        return init(path, BaseEnum.STATUS_ERROR.value, description, code, data);
    }

    /**
     * 请求成功
     *
     * @date 2019-06-05
     * @author cr
     */
    public static MyResult success() {
        return init(null, BaseEnum.STATUS_SUCCESS.value, BaseEnum.DESCRIPTION_SUCCESS.value, BaseEnum.CODE_SUCCESS.value, null);
    }

    /**
     * 请求成功
     *
     * @param data 需要返回的数据
     * @date 2019-06-05
     * @author cr
     */
    public static MyResult success(Object data) {
        return init(null, BaseEnum.STATUS_SUCCESS.value, BaseEnum.DESCRIPTION_SUCCESS.value, BaseEnum.CODE_SUCCESS.value, data);
    }

    /**
     * 请求成功
     *
     * @param data        需要返回的数据
     * @param description 说明
     * @date 2019-06-05
     * @author cr
     */
    public static MyResult success(Object data, String description) {
        return init(null, BaseEnum.STATUS_SUCCESS.value, description, BaseEnum.CODE_SUCCESS.value, data);
    }

    /**
     * 请求成功
     *
     * @date 2019-06-05
     * @author cr
     */
    public static MyResult success(String path) {
        return init(path, BaseEnum.STATUS_SUCCESS.value, BaseEnum.DESCRIPTION_SUCCESS.value, BaseEnum.CODE_SUCCESS.value, null);
    }

    /**
     * 请求成功
     *
     * @param data 需要返回的数据
     * @date 2019-06-05
     * @author cr
     */
    public static MyResult success(String path, Object data) {
        return init(path, BaseEnum.STATUS_SUCCESS.value, BaseEnum.DESCRIPTION_SUCCESS.value, BaseEnum.CODE_SUCCESS.value, data);
    }

    /**
     * 请求成功
     *
     * @param data        需要返回的数据
     * @param description 说明
     * @date 2019-06-05
     * @author cr
     */
    public static MyResult success(String path, Object data, String description) {
        return init(path, BaseEnum.STATUS_SUCCESS.value, description, BaseEnum.CODE_SUCCESS.value, data);
    }
    // endregion

    // region 链式调法区

    public MyResult setPath(String path) {
        this.path = path;
        return this;
    }

    public MyResult setStatus(String status) {
        this.status = status;
        return this;
    }

    public MyResult setCode(String code) {
        this.code = code;
        return this;
    }

    public MyResult setDescription(String description) {
        this.description = description;
        return this;
    }

    public MyResult setData(Object data) {
        this.data = data;
        return this;
    }

    // endregion

    // region get方法区

    public String getServiceName() {
        return serviceName;
    }

    public String getPath() {
        return path;
    }

    public String getStatus() {
        return status;
    }

    public String getCode() {
        return code;
    }

    public String getDescription() {
        return description;
    }

    public Object getData() {
        return data;
    }

    // endregion

    private static MyResult init(String path, String status, String description, String code, Object data) {
        MyResult model = new MyResult();
        model.path = path;
        model.status = status;
        model.description = description;
        model.code = code;
        model.data = data;
        return model;
    }

    // region 构造函数区


    /**
     * 基础的自定义返回,暂不确定是否使用
     *
     * @param path   请求的路由地址
     * @param status 状态
     * @param code   状态码
     * @date 2019-06-05
     * @author cr
     */
    private MyResult(String path, String status, String code) {
        this.path = path;
        this.status = status;
        this.code = code;
    }

    /**
     * 暂不确定是否使用
     */
    private MyResult(String path, String status, String code, String description, Object data) {
        this.path = path;
        this.status = status;
        this.code = code;
        this.description = description;
        this.data = data;

    }

    // endregion

    @Override
    public String toString() {
        return "CloudResultModel{" +
                "serviceName='" + serviceName + '\'' +
                ", path='" + path + '\'' +
                ", status='" + status + '\'' +
                ", code=" + code +
                ", description='" + description + '\'' +
                ", data=" + data +
                '}';
    }

    /**
     * 基础枚举
     *
     * @author cr
     * @date 2019-06-05
     */
    enum BaseEnum {
        // 状态
        STATUS_SUCCESS("SUCCESS"),
        STATUS_ERROR("ERROR"),
        // 说明
        DESCRIPTION_SUCCESS("请求成功"),
        DESCRIPTION_ERROR("请求失败"),
        // 状态代码
        CODE_SUCCESS("1000"),
        CODE_ERROR("1001");

        public String value;

        BaseEnum(String value) {
            this.value = value;
        }

    }

}

服务名称是为了微服务使用的,路径普通的请求也可以用的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值