# 五 通用实体类

# 5.1 通用响应对象

该对象的主要目的是在进行后端开发时统一响应数据的格式,使得全体应用中接口的返回数据的格式能够保持一致性,方便前端开发处理的同时让全局风格保持一定的规范性。

通用响应对象的属性及定义如下:

修饰符 数据类型 属性及含义
protected int code请求的响应码
protected T data响应数据,在基本基本信息无法满足时会出现此信息,一般情况下无此信息
protected Date date响应时间
protected String id请求ID,用于请求追踪 .无论调用接口成功与否,都会返回请求 ID,该序列号全局唯一且随机
protected String msg响应提示信息,一般与响应码的状态对应,对响应结果进行简单地描述

# 5.1.1 赋值说明

  • 响应码code : 在默认情况下借鉴了HttpStatus的响应值和含义,其定义可参见 https://developer.mozilla.org/en-US/docs/Web/HTTP/Statu (opens new window)
  • 响应数据data : 在定义中该属性是一个泛型,用户可以传输各种必需的响应数据。如果用户不需要传输数据仅仅通过响应码表达请求操作结果时,该属性可以置空或使用默认值
  • 响应信息 msg : 该属性在一般情况用于辅助描述响应码希望表达的含义

# 5.1.2 常用创建方法

修饰符及响应 `方法使用及说明
static Response<Object> badParam()生成一个默认的表示参数有误的响应对象(响应码400)
static Response<Object> badParam(String msg)根据响应提示信息生成一个表示参数有误的响应对象(响应码400)
static <T> Response<T> badParam(String msg, T data)根据响应提示信息和响应数据生成一个表示参数有误的响应对象(响应码400)
static Response<Object> error()生成一个默认表示请求业务未完成的响应对象(500响应码)
static Response<Object> error(String msg)根据响应提示信息生成一个表示服务器内部异常500时的返回信息
static <T> Response<T> error(String msg, T data)根据响应提示信息和响应数据生成表示服务器内部异常500时的返回信息
static <T> Response<T> error(T data)根据响应数据生成表示服务器内部异常500时的返回信息
static <T> Response<T> errorData(T data)生成一个默认表示请求业务未完成的响应对象(500响应码)
static Response<Object> notAllow()生成一个默认的表示资源不可用的响应对象(403响应码)
static Response<Object> notAllow(String msg)根据响应提示信息生成表示资源不可用的响应对象(403响应码)
static Response<Object> notFoundt()生成一个默认的表示资源不存在的响应对象(404响应码)
static <T> Response<T> of(int code, String msg, T data)构建一个通用的响应对象
static Response<Object> suc()生成一个默认的一个表示成功的响应对象
static Response<Object> suc(String msg)根据响应提示信息生成一个表示成功的响应对象
static <T> Response<T> suc(String msg, T data)根据响应提示信息和响应数据生成一个表示成功的响应对象
static <T> Response<T> suc(T data)根据响应数据生成一个表示成功的响应对象
static <T> Response<T> sucData(T data)根据响应提示信息生成一个表示成功的响应对象
static Response<Object> unAuth()生成一个默认的表示资源未授权的响应对象(401响应码)
static Response<Object> unAuth(String msg)根据响应提示信息生成一个表示资源未授权的响应对象(401响应码)
static <T> Response<T> unAuth(String msg, T data)根据响应提示信息和响应数据生成一个表示资源未授权的响应对象(401响应码)

# 5.1.3 示例代码

工具路径:

com.yishuifengxiao.common.tool.entity.Response

使用示例:

//默认的请求成功响应,响应码为200
Response<Object> suc = Response.suc();
//默认的请求成功响应,响应码为200,其中:响应描述信息修改为 响应描述信息:成功
Response<Object> suc1 = Response.suc("响应描述信息:成功");
//默认的请求成功响应,响应码为200,其中:响应具体信息修改成功 响应具体信息:成功
Response<String> sucData = Response.sucData("响应具体信息:成功");
//构建一个请求成功响应,响应码为200,其中: 响应描述信息修改为 响应描述信息:成功 ,响应具体信息修改成功 响应具体信息:成功
Response<String> suc2 = Response.suc("响应描述信息:成功", "响应具体信息:成功");


//默认的请求失败响应,响应码为500
Response<Object> error = Response.error();
//默认的请求失败响应,响应码为500,其中:响应描述信息修改为 响应描述信息:失败
Response<Object> error1 = Response.error("响应描述信息:失败");
//默认的请求失败响应,响应码为500,其中:响应具体信息修改成功 响应具体信息:失败
Response<String> errorData = Response.errorData("响应具体信息:失败");
//默认的请求失败响应,响应码为500,其中: 响应描述信息修改为 响应描述信息:失败 ,响应具体信息修改成功 响应具体信息:失败
Response<String> error2 = Response.error("响应描述信息:失败", "响应具体信息:失败");

//通用的构建方法
Response<Object> response = Response.of(响应码, "响应描述信息", 响应具体信息);

# 5.2 通用分页对象

本对象主要是解决后端开发时在使用不同的分页插件时造成分页对象不同从而导致数据结构不一致的问题,本工具主要是适配了jpa里的org.springframework.data.domain.Page和pagehelper里的com.github.pagehelper.PageInfo这两个分页对象。

该工具主要作用如下:

  • 适配不同类型的分页对象
  • 转换分页对象里的数据

该分页对象中的当前页页码从1开始,默认的分页大小为20

工具路径:

//创建一个默认的空的分页对象
Page<Object> empty = Page.ofEmpty();

// 转换 jpa 里的分页对象
Page<Object> page = JpaPage.of(org.springframework.data.domain.Page.empty());

//转换 pagehelper 的分页对象
Page<Object> page1 = TkPage.of(PageInfo.of(new ArrayList<>()));


// 转换分页对象里的数据
Page<Object> convert = page.convert(原始数据 -> {
    
    return 转换后的数据
});

# 5.3 自定义异常

该工具的主要目的是统一项目中使用的各种异常,其定义如下:

image-20211011144459610

Last Updated: 10/11/2021, 4:15:20 PM