目标

开发前后端分离的系统时,“前端应用”调用“后台接口”获取数据。

需要一套统一数据包装体和状态码,供“前端应用”按统一的格式规范来获取响应数据,并通过状态码知道异常类型并做出动作。例如401状态码表示未登录,“前端应用”应打开登录页面。

客户端种类

  1. PC Web网站 (由于是服务端模块服务端路由,不需要使用统一数据包装体和状态码)
  2. wap网站、微信商城                                       (由于前后端分离,所以适用 统一数据包装体和状态码
  3. App(是uni-app开发的app、小程序、h5)  (由于前后端分离,所以适用 统一数据包装体和状态码

统一数据包装体

1.服务端返回的数据是json格式的,数据格式如下:

{
"status":"200", 	//状态码
"message":"查询成功",//文字提示信息
"data":{},  		//接口返回的业务数据
"page":{}   		//接口返回的分页数据
}

2. 数据格式说明:

参数键 说明 java数据类型 js数据类型
status 状态码 String 字符串
message 文字提示信息 String 字符串
data 业务数据 json对象
page. pageNo 分页数据- 页码 new Page() json对象
page. pageSize 分页数据- 每页记录数 new Page() json对象
page. pageCount 分页数据- 总记录数 new Page() json对象

状态码

状态码值 说明
200 服务器成功返回用户请求的数据
400

用户发出的请求有错误,具体错误信息在msg中,服务器没有进行新建或修改数据的操作

访问登录接口时失败,可能是 用户不存在或 密码不正确

401

访问业务接口时未登录,返回401,告知客户端去登录

403 无访问 权限
404 用户发出的请求针对的是不存在的记录,服务器没有进行操作
406 用户请求的格式不可得(比如用户请求JSON格式,但是只有XML格式)
500 服务器发生错误,用户将无法判断发出的请求是否成功

AppDataUtils工具类

com.sicheng.wap.utils.AppDataUtils 是统一数据包装体和状态码的工具类。

工具类名 方法名 说明
AppDataUtils 常量

public static final String STATUS_OK = "200" ; //服务器成功返回用户请求的数据

public static final String STATUS_UNAUTHORIZED = "401" ; //未登录

public static final String STATUS_INVALID = "400" ; //用户发出的请求有错误,服务器没有进行新建或修改数据的操作

public static final String STATUS_FORBIDDEN = "403" ; //无权限

public static final String STATUS_NOT_FOUND = "404" ; //用户发出的请求针对的是不存在的记录,服务器没有进行操作

public static final String STATUS_NOT_ACCEPTABLE = "406" ; //用户请求的格式不可得(比如用户请求JSON格式,但是只有XML格式)

public static final String STATUS_SERVER_ERROR = "500" ; //服务器发生错误,用户将无法判断发出的请求是否成功

public static final Integer LIMIT_DEFAULT = 10; //list长度常量

public static final String PAGE_NO_KEY = "pageNo" ; //页码

public static final String PAGE_SIZE_KEY = "pageSize" ; //每页记录数

public static final String PAGE_COUNT_KEY = "pageCount" ; //总记录数

AppDataUtils

getMap

按《统一数据包装体和状态码》的要求封装数据包装体,封装于map当中

AppDataUtils

getJson

按《统一数据包装体和状态码》的要求封装数据包装体,封装成JSON