springboot统一封装返回结果_Spring Boot 优雅返回统一封装结果

在实际开发中,项目都是前后端分离项目 json 数据格式交互;需要定义统一的返回格式;

在处理业务,需要定义不同的业务错误码用来区分程序错误,统一方便管理和排查 bug 定位;

@Data // lombokpublic class R<T> implements Serializable {  private static final long serialVersionUID = 6738387175874422264L;  private Integer code;  private String message;  private T data;  private R() {  }  public static <T> R<T> ok() {    return createResult(ResponseCode.SUCCESS.getCode(), null, null);  }  public static <T> R<T> ok(T data) {    return createResult(ResponseCode.SUCCESS.getCode(), ResponseCode.SUCCESS.getMessage(), data);  }  public static <T> R<T> ok(String message) {    return createResult(ResponseCode.SUCCESS.getCode(), message, null);  }  public static <T> R<T> ok(T data, String message) {    return createResult(ResponseCode.SUCCESS.getCode(), message, data);  }  public static <T> R<T> fail() {    return createResult(ResponseCode.FAIL.getCode(), ResponseCode.FAIL.getMessage(), null);  }  public static <T> R<T> fail(ResponseCode responseCode) {    return createResult(responseCode.getCode(), responseCode.getMessage(), null);  }  public static <T> R<T> fail(ResponseCode responseCode, T data) {    return createResult(responseCode.getCode(), responseCode.getMessage(), data);  }  public static <T> R<T> fail(ResponseCode responseCode, String message) {    return createResult(responseCode.getCode(),        String.format("%s %s", responseCode.getMessage(), message), null);  }  public static <T> R<T> fail(Integer code, String message) {    return createResult(code, message, null);  }  private static <T> R<T> createResult(Integer code, String message, T data) {    R<T> r = new R<>();    r.setCode(code);    r.setMessage(message);    r.setData(data);    return r;  }}
public interface IResponseCode {  /**   * code   *   * @return code   */  Integer getCode();  /**   * message desc   *   * @return message   */  String getMessage();}
@Getter@AllArgsConstructorpublic enum ResponseCode implements IResponseCode {  /**   * 成功   */  SUCCESS(200, "请求成功"),  /**   * 失败   */  FAIL(400, "请求失败"),      /**  * 用户信息不存在  */  USER_NOT_FOUND(10001, "用户信息不存在"),  ;  /**   * code   */  final Integer code;  /**   * message desc   */  final String message;}

返回前端的格式,一目了然

成功
{    "code": 200,    "message": "请求成功",    "data": [        // ....    ]}
失败
{    "code": 400,    "message": "请求失败",    "data": null}{    "code": 10001,    "message": "用户信息不存在",    "data": null}

历史文章

Python Scrapy (Plus) Double Happy ~

Python Scrapy 体会一下, 爬虫的快乐~

MySql 进阶

MySql 初识

Docker 常用操作

dfd5dd8859015718d27a5c51ad38674e.png

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值