SpringBoot优雅的统一返回结果

在我们日常开发中,处理数据之后,给客户端返回一个优美的统一结果,能够让客户端很容易判断数据交给服务端处理的结果。

下面我们基于Springboot,使用枚举+实体类的形式,打造一个优雅的统一返回结果工具!

  • 引入pom包(lombok)

        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
  • 编写枚举类Renum.java

import lombok.Getter;

/**
 * @author qiemengyan
 */

@Getter
public enum Renum {

    /**
     * 成功响应
     */
    SUCCESS(true,200,"成功"),
    /**
     * 机器人未上线
     */
    ROBOT_OFF(false,1001,"该机器人不存在或已下线,数据接收失败"),
    /**
     * 类型为空
     */
    TYPE_NULL_ERROR(false,1002,"类型不能为空"),
    /**
     * 传输过程异常
     */
    NULL_ERROR(false,1003,"服务程序数据传输过程异常,请联系管理员"),
    /**
     * 未知的数据类型
     */
    UNKNOWN_TYPE(false,1004,"类型不识别"),
    /**
     * 运行时异常处理
     */
    RUN_ERROR(false,1005,"服务运行出错,请联系管理员"),

   
    /**
     *  响应是否成功
     */
    private final Boolean success;
    /**
     *  响应状态码
     */
    private  final Integer code;
    /**
     *  响应信息
     */
    private  final String message;


    Renum(Boolean success, int code, String messsage) {
        this.success=success;
        this.code=code;
        this.message=messsage;
    }
}
  • 编写实体类ResultClass.java



import lombok.Data;

/**
 * 返回结果的实体类(升级版,暂未使用)
 *
 * @author qiemengyan
 */
@Data
public class ResultClass<T> {
    private Boolean success;
    private Integer code;
    private String message;
    private T data;

    /**
     * 正常响应,无返回数据
     */
    public ResultClass() {
        Renum renum = Renum.SUCCESS;
        this.message = renum.getMessage();
        this.code = renum.getCode();
        this.success = renum.getSuccess();

    }

    /**
     * 正常响应,加返回数据
     *
     * @param data 数据
     */
    public ResultClass(T data) {
        Renum renum = Renum.SUCCESS;
        this.message = renum.getMessage();
        this.code = renum.getCode();
        this.success = renum.getSuccess();
        this.data = data;
    }

    /**
     * 统一异常处理
     *
     * @param renum 枚举类
     */

    public ResultClass(Renum renum) {
        this.message = renum.getMessage();
        this.code = renum.getCode();
        this.success = renum.getSuccess();
    }

    @Override
    public String toString() {
        return "{" +
                "success=" + success +
                ", code=" + code +
                ", message='" + message + '\'' +
                ", data=" + data +
                "}";
    }

}
  • 使用

客户端收到的结果如下图:

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小郄同学

打赏加QQ群教学

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值