java clouds_前后端分离的项目开发前,会提前规定好数据返回格式,本文以JSON为例。第一步,定义好JavaBean。package com.yclouds.myhel...

前后端分离的项目开发前,会提前规定好数据返回格式,本文以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;

/**

* 所有服务统一响应数据格式

*

* @author ye17186

* @version 2019/2/15 14:40

*/

@Data

public class ApiResp implements 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;

/**

* 响应内容,默认为null

*/

private T data = null;

/**

* 是否的正常响应

*

* @return true=正常;false=异常

*/

@JsonIgnore

public boolean isOK() {

return code == SUCCESS_CODE;

}

/**

* 无data的正常返回

*/

public static ApiResp retOK() {

return new ApiResp();

}

/**

* 有data的正常返回

*

* @param data data内容

* @param data类型

*/

public static ApiResp retOK(T data) {

ApiResp response = new ApiResp<>();

response.setData(data);

return response;

}

/**

* 无data的失败返回

*

* @param error 错误类型

*/

public static ApiResp retFail(BaseEnumError error) {

return retFail(error.getCode(), error.getMsg());

}

/**

* 有data的失败返回

*

* @param error 错误类型

* @param data 详细错误信息

*/

public static ApiResp retFail(BaseEnumError error, T data) {

return retFail(error.getCode(), error.getMsg(), data);

}

/**

* 无data的失败返回

*

* @param code 错误码

* @param msg 错误信息

*/

public static ApiResp retFail(int code, String msg) {

ApiResp response = new ApiResp<>();

response.setCode(code);

response.setMsg(msg);

return response;

}

/**

* 有data的失败返回

*

* 失败返回的场景不多,所以没有严格要求T泛型

*

* @param code 错误码

* @param msg 错误信息

*/

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查看具体的响应内容如下:

7904496c5ed0b77c882852ecea1de70f.png

0dce0ca032dbc4d14ac9f7517eae9d09.png

当然,ApiResp中的泛型,也可以使用复杂的数据对象。实际开发中,每种错误响应都有自己的响应码code,和错误信息msg,示例中统一定义了一个BaseEnumError的枚举类,具体内容可参照我的github项目https://github.com/ye17186/myhelper-spring-boot-starter

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值