一.统一返回结果类
这里如果不怕麻烦,可以不使用Lombok,这样可以将get/set方法私有化,这样调用的时候仅会出现我们自己提供的code(),message(),data()方法
package com.xx.utils;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.HashMap;
import java.util.Map;
/**
* @author aqi
* DateTime: 2020/10/7 10:50 上午
* Description: 统一返回结果类
*/
@Data
public class R {
@ApiModelProperty(value = "是否成功")
private Boolean success;
@ApiModelProperty(value = "响应码")
private Integer code;
@ApiModelProperty(value = "返回消息")
private String message;
@ApiModelProperty(value = "返回数据")
private Map<String, Object> data = new HashMap<>();
private R(){}
public static R success() {
R r = new R();
r.setSuccess(true);
r.setCode(ResultCode.SUCCESS.getCode());
r.setMessage(ResultCode.SUCCESS.getMessage());
return r;
}
public static R error() {
R r = new R();
r.setSuccess(false);
r.setCode(ResultCode.ERROR.getCode());
r.setMessage(ResultCode.ERROR.getMessage());
return r;
}
public static R error(ResultCode code) {
R r = new R();
r.setSuccess(false);
r.setCode(code.getCode());
r.setMessage(code.getMessage());
return r;
}
public R message(String message) {
this.setMessage(message);
return this;
}
public R code(Integer code) {
this.setCode(code);
return this;
}
public R data(String key, Object vale) {
this.data.put(key, vale);
return this;
}
}
二.响应状态码枚举
package com.xx.utils;
/**
* @author aqi
* DateTime: 2020/10/7 10:48 上午
* Description: 响应状态码
*/
public enum ResultCode {
SUCCESS(200, "成功"),
ERROR(201, "失败"),
CODE_9999(9999, "系统繁忙,请稍后再试"),
;
private int code;
private String message;
public int getCode() {
return code;
}
public String getMessage() {
return message;
}
ResultCode(int code, String message) {
this.code = code;
this.message = message;
}
}
三.使用方式
package com.xx.controller;
import com.xx.utils.R;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @author aqi
* DateTime: 2020/11/5 10:09 上午
* Description: No Description
*/
@RestController("/demo")
public class DemoController {
@GetMapping("/demo")
public R demo() {
return R.success().data("key", "value");
}
}