SpringBoot接口统一返回

141 阅读1分钟

1 前言

在实际开发中,为了降低开发人员之间的沟通成本,一般返回结果会定义成一个统一格式,具体的格式根据实际开发业务不同有所区别,但至少包括三要素:

  1. code:请求的状态码
  2. message:请求的结果描述
  3. data:接口返回的数据

2 实现

2.1 定义状态码

package com.example.animeApi.domain.vo;

public enum Status {
   SUCCESS(200, "成功!"),
   FAIL(400, "失败!");

   private final int code;
   private final String msg;

   Status(int code, String msg) {
      this.code = code;
      this.msg = msg;
   }

   public int getCode() {
      return code;
   }

   public String getMsg() {
      return msg;
   }
}

2.2 定义返回对象

package com.example.animeApi.domain.vo;

@Data
public class Result {
   private int code;
   private String msg;
   private Object data;

   public static Result success(Object data) {
      Result re = new Result();
      re.setCode(Status.SUCCESS.getCode());
      re.setMsg(Status.SUCCESS.getMsg());
      re.setData(data);
      return re;
   }

   public static Result fail(int code, String msg) {
      Result re = new Result();
      re.setCode(code);
      re.setMsg(msg);
      return re;
   }
}

2.3 统一接口返回类型

最后,我们将接口的返回值类型改为我们定义的Result就行了。

@GetMapping("/test")
public Result test(){
    return Result.success("success");
}