SpringBoot 封装接口返回数据的统一结构

文章目录

    • 1. 封装代码
    • 2. 使用示例
    • 3. 结果示例
    • 4. 代码优化
      • 4.1. 返回值包装
      • 4.2. 自定义枚举
      • 4.3. 接口修改示例


1. 封装代码

代码使用了Lombok注解。

首先提供一个枚举,用于封装返回的提示码和提示信息。

package com.example.demo.common.result;

import lombok.AllArgsConstructor;
import lombok.Getter;

/**
 * @author wangbo
 * @date 2021/05/12
 */
@Getter
@AllArgsConstructor
public enum ResultCode {
   

    //成功提示码
    SUCCESS(20000, "成功"),

    //自定义失败信息
    FAILURE(50000, "失败"),

    //通用错误码 50001~50099
    PROGRAM_INSIDE_EXCEPTION(50001, "程序内部异常"),
    REQUEST_PARAM_ERROR(50002, "请求参数错误");

    //用户模块错误码 50100~50199
    //商品模块错误码 50200~50299
    //订单模块错误码 50300~50399

    private final Integer code;
    private final String message;
}

接下来提供一个返回类型,这里使用了泛型,用于对返回数据进行统一包装。

package com.example.demo.common.result;

import lombok.Data;

/**
 * @author wangbo
 * @date 2021/05/12
 */
@Data
public class Result<T> {
   

    private Integer code;

    private String message;

    private T data;

    /**
     * 成功
     */
    public static Result<Void> success() {
   
        Result<Void> result = new Result<>();
        result.setCode(ResultCode.SUCCESS.getCode());
        result.setMessage(ResultCode.SUCCESS.getMessage());
        return result;
    }

    /**
     * 成功,有返回数据
     */
    public static <V> Result<V> success(V data) {
   
        Result<V> result = new Result<>();
        result.code = ResultCode.SUCCESS.getCode();
        result.message = ResultCode.SUCCESS.getMessage();
        result.data = data;
        return result;
    }

    /**
     * 失败
     */
    public static Result<Void> failure() {
   
        Result<Void> result = new Result<>();
        result.setCode(ResultCode.FAILURE.getCode());
        result.setMessage(ResultCode.FAILURE.getMessage());
        return result;
    }

    /**
     * 失败,自定义失败信息
     */
    public static Result<Void> failure(String message) {
   
        Result<Void> result = new <

你可能感兴趣的:(Spring,spring,java,spring,boot)