
统一接口返回的标准格式R的规范使用。
统一接口返回的标准格式-R.java
分析
在项目开发中,前后端分离的开发方式可能回需要多人团队的配合。虽然可以通过swagger来进行接口测试。但是任然避免不了以下问题:
- 每个开发者在编写借口是没有规范,返回值就千变万化。
- 接口的调用者,会对借口产生错误理解或者不明确的现象。
==对接口的开发进行规范化集中管理==
使用
设置枚举类
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
|
public enum ResponseEnum { SUCCESS(200,"成功"), USER_REG_USER_PASSWORD_CODE(401,"用户名和密码错误"), USER_REG_USER_PASSWORD_CONFIRM(402,"密码和确认密码不一致"), ORDER_FAIL(601,"订单失败"), ORDER_MESSAGE_FAIL(602,"订单发送消息失败") ;
private Integer code; private String message;
ResponseEnum(Integer code, String message) { this.code = code; this.message = message; }
public Integer getCode() { return code; }
public String getMessage() { return message; } }
|
设置R类
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81
|
@Data public class R {
private Integer code; private Object data; private String message;
public R() { }
public static R success(Object data, String message) {
R r = new R(); r.setCode(ResponseEnum.SUCCESS.getCode());; r.setMessage(message == null ? ResponseEnum.SUCCESS.getMessage(): message); r.setData(data); return r; }
public static R success(Object data){ return success(data,null); }
public static R failt(Integer code, String message){ R r = new R(); r.setCode(code); r.setData(null); r.setMessage(message); return r; }
public static R failt(ResponseEnum responseEnum){ R r = new R(); r.setCode(responseEnum.getCode()); r.setData(null); r.setMessage(responseEnum.getMessage()); return r; } }
|
调用
| @GetMapping("/reg") public R register() { log.info("用户注册"); regService.sendMsg(); log.info("发送短信"); regService.addScore(); return R.success("OK"); }
|
成功
| { "code": 200, "data": "OK", "message": "成功" }
|
问题
==统一返回的参考来源==
1、mybatis-plus–R类
2、springmvc中有一个:ResponseEntity和HttpStatus一个枚举类
==为什么在开发中,我们不使用springMvc提供好的,还多此一举自己的去定义和实现一个R和一个枚举呢?==