# Response


# HTTP状态码 -- STATUS

状态码 说明
200 OK 服务器成功返回请求的数据
201 CREATED 新建或修改数据成功
202 Accepted 表示一个请求已经进入后台排队(异步任务)
204 NO CONTENT 删除数据成功
400 INVALID REQUEST 请求有错误,服务器没有进行新建或修改数据的操作(幂等操作)
401 Unauthorized 没有权限(令牌、用户名、密码错误)
403 Forbidden 得到授权(与401错误相对),但是访问是被禁止的
404 NOT FOUND 请求记录不存在,服务器没有进行操作(幂等操作)
406 Not Acceptable 请求的格式不符合(比如用户请求JSON格式,但是只有XML格式)
500 INTERNAL SERVER ERROR 服务器发生错误,无法判断发出的请求是否成功

# CODE

状态码 说明
20000 success
4XXXX Client error
40001 Parameter cannot be empty(参数不可为空)
40002 Please check the parameter constraints(The parameter is not of the expected type)
参数约束请检查(参数不是期望的类型)
5XXXX Server error
50001 invalid access token
50002 already login in other place
50003 access token expired
50004 invalid user (user not exist)
50005 username or password is incorrect

# 格式

  • 前后端交互字段全部使用小驼峰方式
  • 前后端传输字段需要符合驼峰命名:userName
  • 后台返回数据字段需都在data里,不得在data之外;除与前端商定过
  • 后台返回值为空时,需返回相对应的键名如:{listData: null} (键值为空时值null)
{
  "code": "20000", // 见上述表格(CODE)
  "status": "200", // 见上述表格(STATUS)
  "data": []/{}, // 多条记录使用JSON数组,单条记录使用JSON对象
  "message": []     // 状态为error或fail时,对应的错误信息
}
  • 为什么要使用code和status,使用一个记录不是可以?
  • 讲解

  • 而code是后端手动根据情况而制定的编码,方便前端提示客户端

  • 因为status主要记录的是HTTP响应码,好多javascript框架并不会获取http状态码,所以包装到body中便于使用;

  • 作用

  • 前端根据code在请求的拦截器做处理,若code !== "20000",则将message作为错误信息提示客户端;在请求拦截器被拦截到错误,也不会继续走该页面上的逻辑处理

  • code === "20000"的情况下,客户端的请求将通过拦截器走到页面的逻辑处理,这时可以将status来作为该请求在页面上的相应提示与逻辑判断