简介
本文介绍封装公共响应值给前端的方法。
为什么要封装公共响应值?
在实际开发中,后端给前端的响应值必须要有一层封装,封装里边有状态码、错误信息、接口数据等。前端会先判断状态码,如果是成功,则获取数据;如果是失败,直接奖错误信息提示给用户。
有了这个公共的响应值,前后端交互会变得统一,这样会很便捷高效,会减少很多问题。另一方面,这个公共响应值也会作为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; } }
请先
!