全局统一返回结果包装信息
1.全局统一处理结果类
package com.atguigu.yygh.common.result;import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;/*** 全局统一返回结果类*/
@Data
@ApiModel(value = "全局统一返回结果")
public class Result<T> {@ApiModelProperty(value = "返回码")private Integer code;@ApiModelProperty(value = "返回消息")private String message;@ApiModelProperty(value = "返回数据")private T data;public Result(){}protected static <T> Result<T> build(T data) {Result<T> result = new Result<T>();if (data != null)result.setData(data);return result;}public static <T> Result<T> build(T body, ResultCodeEnum resultCodeEnum) {Result<T> result = build(body);result.setCode(resultCodeEnum.getCode());result.setMessage(resultCodeEnum.getMessage());return result;}public static <T> Result<T> build(Integer code, String message) {Result<T> result = build(null);result.setCode(code);result.setMessage(message);return result;}public static<T> Result<T> ok(){return Result.ok(null);}/*** 操作成功* @param data* @param <T>* @return*/public static<T> Result<T> ok(T data){Result<T> result = build(data);return build(data, ResultCodeEnum.SUCCESS);}public static<T> Result<T> fail(){return Result.fail(null);}/*** 操作失败* @param data* @param <T>* @return*/public static<T> Result<T> fail(T data){Result<T> result = build(data);return build(data, ResultCodeEnum.FAIL);}public Result<T> message(String msg){this.setMessage(msg);return this;}public Result<T> code(Integer code){this.setCode(code);return this;}public boolean isOk() {if(this.getCode().intValue() == ResultCodeEnum.SUCCESS.getCode().intValue()) {return true;}return false;}
}
2.统一返回结果状态信息类
package com.atguigu.yygh.common.result;import lombok.Getter;/*** 统一返回结果状态信息类*/
@Getter
public enum ResultCodeEnum {SUCCESS(200,"成功"),FAIL(201, "失败"),PARAM_ERROR( 202, "参数不正确"),SERVICE_ERROR(203, "服务异常"),DATA_ERROR(204, "数据异常"),DATA_UPDATE_ERROR(205, "数据版本异常"),LOGIN_AUTH(208, "未登陆"),PERMISSION(209, "没有权限"),CODE_ERROR(210, "验证码错误"),
// LOGIN_MOBLE_ERROR(211, "账号不正确"),LOGIN_DISABLED_ERROR(212, "改用户已被禁用"),REGISTER_MOBLE_ERROR(213, "手机号已被使用"),LOGIN_AURH(214, "需要登录"),LOGIN_ACL(215, "没有权限"),URL_ENCODE_ERROR( 216, "URL编码失败"),ILLEGAL_CALLBACK_REQUEST_ERROR( 217, "非法回调请求"),FETCH_ACCESSTOKEN_FAILD( 218, "获取accessToken失败"),FETCH_USERINFO_ERROR( 219, "获取用户信息失败"),//LOGIN_ERROR( 23005, "登录失败"),PAY_RUN(220, "支付中"),CANCEL_ORDER_FAIL(225, "取消订单失败"),CANCEL_ORDER_NO(225, "不能取消预约"),HOSCODE_EXIST(230, "医院编号已经存在"),NUMBER_NO(240, "可预约号不足"),TIME_NO(250, "当前时间不可以预约"),SIGN_ERROR(300, "签名错误"),HOSPITAL_OPEN(310, "医院未开通,暂时不能访问"),HOSPITAL_LOCK(320, "医院被锁定,暂时不能访问"),;private Integer code;private String message;private ResultCodeEnum(Integer code, String message) {this.code = code;this.message = message;}
}
全局统一返回结果包装信息相关推荐
- Java全局统一返回处理
新项目中不希望每次返回参数还要重新封装再返回,希望直接将查询数据或者返回数据统一定义进行返回,所以将新项目中的全局统一返回配置记录,备忘.同时分享给有需要的码友.(例:查询出来的对象集合直接返回,会统 ...
- java purge_springboot之全局处理统一返回
springboot之全局处理统一返回 简介 在REST风格的开发中,避免通常会告知前台返回是否成功以及状态码等信息.这里我们通常返回的时候做一次util的包装处理工作,如:Result类似的类,里面 ...
- api laravel 统一返回方法_你写的API接口代码真的烂,难道不能对返回格式统一处理一下吗?...
随着互联网各岗位精细化分工的普及,出现了很多的系统架构设计,比如常见的前后端分离架构,后端提供接口给前端,前端根据接口的数据进行渲染,大家各执其职,效率也非常的高,但是随着接口的增加,如果不统一的规范 ...
- 后台接口统一返回类型-ResponseBodyAdvice
思路 1.自定义一个注解@ResponseResult用于在方法或者类上面标注,标识这个接口需要包装数据 2.拦截请求.判断此请求是否被@ResponseResult注解标注 3.实现接口Respon ...
- Spring中Controller层、Filter层、Interceptor层全局统一异常处理
Controller层.Filter层.Interceptor层全局统一异常处理 SpringBoot为异常处理提供了很多优秀的方法,但是像我这种新手在处理异常时还是会觉得一头包,终于我痛定思痛,总结 ...
- apache dubbo 自定义全局统一的异常处理器
项目使用过的是apache dubbo 2.7.1, 封装了自定义全局统一的异常处理器. 统一异常处理器 需要实现javax.ws.rs.ext.ExceptionMapper接口. import o ...
- Spring Boot 2.x(六):优雅的统一返回值
目录 为什么要统一返回值 ReturnVO ReturnCode 使用ReturnVO 使用AOP进行全局异常的处理 云撸猫 公众号 为什么要统一返回值 在我们做后端应用的时候,前后端分离的情况下,我 ...
- java中飞飞检查异常_Springboot项目如何在controller层统一返回数据以及处理异常
在开发项目中,对于controller返回数据同时返回可能大家都能够做到.也就是定义一个相应类,里面有code, msg,content(或data). 在此基础上可能还会再封装以下,搞个基础cont ...
- Glusterfs全局统一命名空间
全局统一命名空间 Glusterfs采用了全局统一命名空间设计,将磁盘和内存资源聚集成一个单一的虚拟存储池进行管理,并在此命名空间中使用NFS/CIFS等标准协议来访问应用数据.与其他分布式文件系统有 ...
最新文章
- Modeling System Behavior with Use Case(1)
- C++中栈和堆上建立对象的区别
- Ubuntu16安装CUDA9.0+Anaconda+Tensorflow1.8GPU(2018.08.20最新)
- [转]memset用法详解
- 原生JS封装自己的AJAX
- VS或编译的时候不生成Release文件夹
- C++中如何小数点后精确到两位输出
- 20170702-变量说明,静态方法,类方法区别,断点调试,fork,yield协程,进程,动态添加属性等。。...
- 好用的论文翻译工具集锦
- 搭建Kangle+EasyPanel+WHMCS实时开通付费虚拟空间
- uni-app(微信小程序)连接HC系列蓝牙模块并进行双向通信采坑总结
- 【黑曼巴】菜鸟HTML
- 安卓APP限制截屏录屏解决方案
- 2011正月初3 震中映秀
- AntV G6 的坑之——从卡掉渣到满帧需要几步
- Linux ManJaro 换源、安装应用
- java 短信验证码(创蓝接口)调用
- SpringBoot实体类返回JEON属性值排空返回
- JAVA8线程池THREADPOOLEXECUTOR底层原理及其源码解析
- 2021年机修钳工(技师)考试题库及机修钳工(技师)模拟考试
热门文章
- C/C++隐式类型转换导致的若干问题
- exe文件添加为服务
- if condition 大于_if __name__ == #x27;__main__#x27;: 究竟起什么作用,阅读本文后,其他文章不必再看...
- 并发测试工具_软件测试工程师都在用哪些测试工具?
- 模板 字段_Anki学习之路(08)|什么是Anki模板类型?什么是字段?
- 菜鸟要飞java_Java Android视频教程 下载
- mysql实现日志系统_基于Hadoop/CloudBase/MySQL的日志分析系统的设计与实现
- brew安装_苹果mac系统必须安装python3
- 临沧计算机教试报名,2019下半年临沧小学计算机教师资格证考什么?
- 计算机与数学文化论文参考文献,数学文化与人类文明论文.doc