[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分頁