前后端分离的项目开发前,会提前规定好数据返回格式,本文以JSON为例。
第一步,定义好JavaBean。
package com.yclouds.myhelper.web.response; import com.fasterxml.jackson.annotation.JsonIgnore; import com.yclouds.myhelper.web.error.code.baseEnumError; import java.io.Serializable; import lombok.Data; @Data public class ApiRespimplements Serializable { private static final long serialVersionUID = 9211889136173018364L; private static final int SUCCESS_CODE = 0; private static final String SUCCESS_MSG = "SUCCESS"; private int code = SUCCESS_CODE; private String msg = SUCCESS_MSG; private T data = null; @JsonIgnore public boolean isOK() { return code == SUCCESS_CODE; } public static ApiResp retOK() { return new ApiResp(); } public static ApiResp retOK(T data) { ApiResp response = new ApiResp<>(); response.setData(data); return response; } public static ApiResp retFail(baseEnumError error) { return retFail(error.getCode(), error.getMsg()); } public static ApiResp retFail(baseEnumError error, T data) { return retFail(error.getCode(), error.getMsg(), data); } public static ApiResp retFail(int code, String msg) { ApiResp response = new ApiResp<>(); response.setCode(code); response.setMsg(msg); return response; } public static ApiResp retFail(int code, String msg, T data) { ApiResp response = new ApiResp<>(); response.setCode(code); response.setMsg(msg); response.setData(data); return response; } }
第二步,在Controller中使用
@GetMapping("/test1")
public ApiResp test1() {
return ApiResp.retOK("Hello World");
}
@GetMapping("/test2")
public ApiResp test2() {
return ApiResp.retFail(baseEnumError.SYSTEM_NO_LOGIN);
}
可以在Postman查看具体的响应内容如下:
当然,ApiResp中的泛型,也可以使用复杂的数据对象。实际开发中,每种错误响应都有自己的响应码code,和错误信息msg,示例中统一定义了一个baseEnumError的枚举类,具体内容可参照我的github项目https://github.com/ye17186/myhelper-spring-boot-starter
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持考高分网。



