1.统一响应格式的作用
一方面,让自己的后台代码看起来更加整洁,另一方面,对其他端的对接也比较方便。有时候,你可能也会需要打印一下返回值,统一的响应格式让你也比较好查找问题。
2.定义
通常把统一响应格式定义为一个类,我一般定义为 Result,由于返回值类型的不确定性,实现方式也有多种,可以是 Object,可以用泛型,也可以实现 Map 接口,我的方式是 Object。
@Data
public class Result {
private Integer code;
private String message;
private Object data;
public Result(){}
public Result(int code, String msg) {
this.setCode(code);
this.setMessage(msg);
}
public Result(ResponseStatus carStatus) {
this.setCode(carStatus.getCode());
this.setMessage(carStatus.getMsg());
}
public Result(int code, String msg, Object data) {
this.setCode(code);
this.setMessage(msg);
this.setData(data);
}
public Result(ResponseStatus carStatus, Object data) {
this.setCode(carStatus.getCode());
this.setMessage(carStatus.getMsg());
this.setData(data);
}
public static Result of(int code, String msg){
return new Result(code,msg);
}
public static Result of(ResponseStatus status){
return new Result(status);
}
public static Result of(int status, String msg, Object data){
return new Result(status,msg, data);
}
public static Result of(ResponseStatus carStatus, Object data){
return new Result(carStatus, data);
}
public static Result ok(){
return Result.of(ResponseStatus.OK);
}
public static Result ok(Object data){
return Result.of(ResponseStatus.OK, data);
}
public static Result error(){
return Result.of(ResponseStatus.INTERNAL_SERVER_ERROR);
}
public static Result error(String msg){
return Result.of(ResponseStatus.INTERNAL_SERVER_ERROR.getCode(),msg);
}
public static Result badRequest(){
return Result.of(ResponseStatus.BAD_REQUEST);
}
public static Result badRequest(String msg){
return Result.of(ResponseStatus.BAD_REQUEST.getCode(),msg);
}
}
一些常用的返回可以定义成枚举类型
public enum ResponseStatus {
OK(200,"操作成功"),
BAD_REQUEST(401,"请求无效"),
INTERNAL_SERVER_ERROR(500,"服务异常");
private int code;
private String msg;
ResponseStatus(int code, String msg) {
this.code = code;
this.msg = msg;
}
public int getCode() {
return code;
}
public String getMsg() {
return msg;
}
}
3.使用
在写请求接口的时候,可以直接将 Result 作为返回值。
@GetMapping("list")
@ResponseBody
public Result list(@RequestParam Map<String, Object> params){
return Result.ok(service.list(params));
}
响应结果为:
{
"code": 1,
"message": "操作成功",
"data": []
}
以上就是我自己对统一响应格式的理解,若有不合适的地方,欢迎交流
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于