[TOC]
### 正确使用状态码
HTTP 提供了丰富的状态码供我们使用,正确的使用状态码可以让响应数据更具可读性。
* [ ] 200 OK - 对成功的 GET、PUT、PATCH 或 DELETE 操作进行响应。也可以被用在不创建新资源的 POST 操作上
*****
* [ ] 201 Created - 对创建新资源的 POST 操作进行响应。应该带着指向新资源地址的 Location 头
*****
* [ ] 202 Accepted - 服务器接受了请求,但是还未处理,响应中应该包含相应的指示信息,告诉客户端该去哪里查询关于本次请求的信息
*****
* [ ] 204 No Content - 对不会返回响应体的成功请求进行响应(比如 DELETE 请求)
*****
* [ ] 304 Not Modified - HTTP 缓存 header 生效的时候用
*****
* [ ] 400 Bad Request - 请求异常,比如请求中的 body 无法解析
*****
* [ ] 401 Unauthorized - 没有进行认证或者认证非法
*****
* [ ] 403 Forbidden - 服务器已经理解请求,但是拒绝执行它
*****
* [ ] 404 Not Found - 请求一个不存在的资源
*****
* [ ] 405 Method Not Allowed - 所请求的 HTTP 方法不允许当前认证用户访问
*****
* [ ] 410 Gone - 表示当前请求的资源不再可用。当调用老版本 API 的时候很有用
*****
* [ ] 415 Unsupported Media Type - 如果请求中的内容类型是错误的
*****
* [ ] 422 Unprocessable Entity - 用来表示校验错误
*****
* [ ] 429 Too Many Requests - 由于请求频次达到上限而被拒绝访问
*****
对于错误数据,默认使用如下结构:
```
'message' => ':message', // 错误的具体描述
'errors' => ':errors', // 参数的具体错误描述,422 等状态提供
'code' => ':code', // 自定义的异常码
'status_code' => ':status_code', // http状态码
'debug' => ':debug', // debug 信息,非生产环境提供
```
例如:
~~~
{
"message": "422 Unprocessable Entity",
"errors": {
"name": [
"姓名 必须为字符串。"
]
},
"status_code": 422
}
~~~
~~~
{
"message": "您无权访问该订单",
"status_code": 403
}
~~~
- 序言
- ES6模块化
- node基础
- FS模块
- 常用变量
- crypto加密
- 基础
- 安装
- 中间件
- 架构
- 结构分层
- 配置
- 路由
- 安装路由
- 自动加载
- 获取参数
- 路由前缀
- 路由中间件
- 控制器
- 请求
- 请求信息
- 数据库
- mongoDB
- mongoDB原生语句
- mongoDB数据库角色
- mongoose连接数据库
- 自动记录时间戳
- 模型
- mongoose模型
- 定义
- 模型初始化
- 查询
- 新增
- 更新
- 删除
- 隐藏字段
- 模式
- 关联查询
- 复杂模型
- 仿知乎个人资料建模
- 关注与粉丝
- 视图
- 模板
- edge
- 日志
- 错误和调试
- 调试当前文件
- nodemon调试
- 异常处理
- Koa2错误处理
- 验证
- Koa验证器
- async-validator
- installation
- 安全
- 数据加密
- 杂项
- jwt
- koa-jwt
- env环境变量配置
- 上传
- 分页和模糊搜索
- 扩展
- nodemon
- bodyparser
- koaJsonError
- cross-env
- uuid生成唯一ID
- pope字符串模板引擎
- 命令行
- 部署
- 附录
- RESTfulApi
- Http动词
- 状态码
- 调用频率限制
- 按需查询字段
- restful分页