SpringBoot接口统一返回结果

package com.example.common.response;


public enum ResponseCode {
    /**
     * 公共返回码
     */
    FAIL(-1, "系统繁忙"),
    SUCCESS(0, "请求成功"),


    private int code;
    private String message;

    ResponseCode(int code, String message) {
        this.code = code;
        this.message = message;
    }

    public int getCode() {
        return code;
    }

    public void setCode(int code) {
        this.code = code;
    }

    public String getMessage() {
        return message;
    }

    public void setMessage(String message) {
        this.message = message;
    }
}
package com.example.common.response;

import lombok.Data;


@Data
public class RestResponse<T> extends BaseResponse {

    private T data;

    /**
     * 无返回值的成功响应
     */
    public static <T> RestResponse<T> success() {
        return build(ResponseCode.SUCCESS);
    }

    /**
     * 包含返回值的成功相应
     */
    public static <T> RestResponse<T> success(T data) {
        return build(ResponseCode.SUCCESS, data);
    }

    /**
     * 未知异常,返回系统繁忙响应<br/>
     * 谨慎使用,接口尽量返回明确的错误信息
     */
    public static <T> RestResponse<T> fail() {
        return build(ResponseCode.FAIL);
    }

    /**
     * 未知异常,返回系统繁忙响应
     * @param data 错误信息
     */
    public static <T> RestResponse<T> fail(T data) {
        return build(ResponseCode.FAIL, data);
    }

    /**
     * 包含具体错误信息的响应
     *
     * @param respCode
     */
    public static <T> RestResponse<T> fail(ResponseCode respCode) {
        return build(respCode);
    }

    /**
     * 包含数据的错误响应
     *
     * @param respCode
     * @param data
     */
    public static <T> RestResponse<T> fail(ResponseCode respCode, T data) {
        return build(respCode, data);
    }

    /**
     * 构建自定义响应
     *
     * @param respCode
     */
    public static <T> RestResponse<T> build(ResponseCode respCode) {
        return new RestResponse<>(respCode.getCode(), respCode.getMessage());
    }

    /**
     * 构建带返回数据的响应
     *
     * @param respCode
     * @param data
     */
    public static <T> RestResponse<T> build(ResponseCode respCode, T data) {
        return build(respCode.getCode(), respCode.getMessage(), data);
    }

    /**
     * 构建自定义message内容的相应<br/>
     * 比如统一异常处理中的字段校验未通过异常,消息内容为自定义的字段错误信息
     *
     * @param code 状态码
     * @param message 提示信息
     */
    public static <T> RestResponse<T> build(int code, String message) {
        return new RestResponse<T>(code, message, null);
    }

    /**
     * 构建自定义message内容的相应<br/>
     * 比如统一异常处理中的字段校验未通过异常,消息内容为自定义的字段错误信息
     *
     * @param code 状态码
     * @param message 提示信息
     * @param data 返回的数据
     */
    public static <T> RestResponse<T> build(int code, String message, T data) {
        return new RestResponse<T>(code, message, data);
    }

    public boolean isSuccess() {
        return ResponseCode.SUCCESS.getCode() == super.code;
    }

    private RestResponse() {
    }

    private RestResponse(int code, String message) {
        this.code = code;
        this.message = message;
    }

    private RestResponse(int code, String message, T data) {
        this.code = code;
        this.message = message;
        this.data = data;
    }
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值