服务响应对象设计
来源:互联网 发布:mac管理桌面图标 编辑:程序博客网 时间:2024/06/05 19:05
如果后端只需要为前端提供json数据时,我们可以考虑将后端的服务结果都封装成公用的对象,不仅可以简化代码而且形成统一的风格。下面就是一种可能的设计方式。其中,msg可以是返回给前端的错误信息或者提示信息,T泛型的data数据就是后端服务的结果,使用泛型之后就能够支持各种类型和自定义业务类型。
@JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL)//保证序列化json的时候,如果是对象的value是null,key也会消失public class ServerResponse<T> implements Serializable { private int status; private String msg; private T data; private ServerResponse(int status) { this.status = status; } private ServerResponse(int status, T data) { this.status = status; this.data = data; } private ServerResponse(int status, String msg, T data) { this.data = data; this.status = status; this.msg = msg; } private ServerResponse(int status, String msg) { this.status = status; this.msg = msg; } @JsonIgnore public boolean isSuccess() { return this.status == ResponseCode.SUCCESS.getCode(); } //以下三个带有get方法的属性会添加到json中 public int getStatus() { return status; } public T getData() { return data; } public String getMsg() { return msg; } //请求成功的接口。避免了T类型data不能包括String数据的问题。 public static <T> ServerResponse<T> createBySuccess() { return new ServerResponse<T>(ResponseCode.SUCCESS.getCode()); } public static <T> ServerResponse<T> createBySuccessMessage(String msg) { return new ServerResponse<T>(ResponseCode.SUCCESS.getCode(), msg); } public static <T> ServerResponse<T> createBySuccess(T data) { return new ServerResponse<T>(ResponseCode.SUCCESS.getCode(), data); } public static <T> ServerResponse<T> createBySuccess(String msg, T data) { return new ServerResponse<T>(ResponseCode.SUCCESS.getCode(), msg, data); } //请求失败的接口 public static <T> ServerResponse<T> createByError() { return new ServerResponse<T>(ResponseCode.ERROR.getCode(), ResponseCode.ERROR.getDesc()); } public static <T> ServerResponse<T> createByErrorMessage(String errorMessage) { return new ServerResponse<T>(ResponseCode.ERROR.getCode(), errorMessage); } public static <T> ServerResponse<T> createByErrorCodeMessage(int errorCode, String errorMessage) { return new ServerResponse<T>(errorCode, errorMessage); }}
阅读全文
1 0
- 服务响应对象设计
- 如何设计实现真正的响应式微服务系统?
- 如何设计实现真正的响应式微服务系统?
- 响应对象
- 服务设计模式-客户端与服务之间的交互(请求/响应模式)
- 响应对象: HttpServletResponse对象
- 高复用服务相应对象的设计思想以及抽象封装
- Kubernetes对象之StatefulSets(有状态系统服务设计)
- 领域驱动设计之实体、值对象、领域服务
- [ 响应式设计 ] 响应式设计入门!
- HttpServletResponse(响应)对象
- 响应者对象
- nextResponder响应对象链
- JSP 响应对象 response
- JavaEE响应对象
- response对象(响应对象)
- 响应式网页设计
- 响应式页面设计
- 菜鸟驿站面对“最后一公里”难题该如何突围?
- 九大排序
- PHP中的排序函数sort、asort、rsort、krsort、ksort区别分析
- 268. Missing Number
- bzoj3309 DZY Loves Math
- 服务响应对象设计
- 131. Palindrome Partitioning
- 劳工部起诉谷歌薪资信息,谷歌嫌收集证据成本贵
- linux 制作U盘启动,和定制系统
- C++抽象类
- http://dl-ssl.google.com/android上不去解决方案
- 你是不是 可替代的Linux运维工程师?
- Day 11 常用正则表达式
- 谨慎使用输出重定向(>)