简介
本文介绍封装公共响应值给前端的方法。
为什么要封装公共响应值?
在实际开发中,后端给前端的响应值必须要有一层封装,封装里边有状态码、错误信息、接口数据等。前端会先判断状态码,如果是成功,则获取数据;如果是失败,直接奖错误信息提示给用户。
有了这个公共的响应值,前后端交互会变得统一,这样会很便捷高效,会减少很多问题。另一方面,这个公共响应值也会作为feign的公共响应,便于调用方统一解析。
封装响应值
package com.knife.common.entity;
import com.knife.common.constant.ResultCode;
import lombok.Data;
@Data
public class ResultWrapper<T> {
private Boolean success = true;
private Integer code;
private T data;
private String message;
private ResultWrapper() {
}
public static <T> ResultWrapper<T> success() {
return success(null);
}
public static <T> ResultWrapper<T> success(T data) {
return assemble(ResultCode.SUCCESS.getCode(), true, data);
}
public static <T> ResultWrapper<T> error() {
return error(null);
}
public static <T> ResultWrapper<T> error(T data) {
return assemble(ResultCode.SYSTEM_FAILURE.getCode(), false, data);
}
public ResultWrapper<T> data(T data) {
this.setData(data);
return this;
}
public ResultWrapper<T> message(String message) {
this.setMessage(message);
return this;
}
public ResultWrapper<T> code(int code) {
this.setCode(code);
return this;
}
public static <T> ResultWrapper<T> assemble(int code, boolean success, T data) {
ResultWrapper<T> resultWrapper = new ResultWrapper<>();
resultWrapper.setCode(code);
resultWrapper.setSuccess(success);
resultWrapper.setData(data);
return resultWrapper;
}
}
用法:
return ResultWrapper.success(data);
return ResultWrapper.success(data).message("访问成功");
return ResultWrapper.error().message("访问失败");
结果状态码
import lombok.Getter;
@Getter
public enum ResultCode {
SUCCESS(1000, "访问成功"),
SYSTEM_FAILURE(1001, "系统异常"),
;
private final int code;
private final String description;
ResultCode(int code, String description) {
this.code = code;
this.description = description;
}
}

请先 !