?
This document uses PHP Chinese website manual Release
處理一個 RESTful API 請求時, 如果有一個用戶請求錯誤或服務(wù)器發(fā)生意外時, 你可以簡單地拋出一個異常來通知用戶出錯了。 如果你能找出錯誤的原因 (例如,所請求的資源不存在),你應(yīng)該 考慮拋出一個適當(dāng)?shù)腍TTP狀態(tài)代碼的異常 (例如, yii\web\NotFoundHttpException 意味著一個404 HTTP狀態(tài)代碼)。 Yii 將通過HTTP狀態(tài)碼和文本 發(fā)送相應(yīng)的響應(yīng)。 它還將包括在響應(yīng)主體異常的 序列化表示形式。 例如,
HTTP/1.1 404 Not Found
Date: Sun, 02 Mar 2014 05:31:43 GMT
Server: Apache/2.2.26 (Unix) DAV/2 PHP/5.4.20 mod_ssl/2.2.26 OpenSSL/0.9.8y
Transfer-Encoding: chunked
Content-Type: application/json; charset=UTF-8
{
"type": "yii\\web\\NotFoundHttpException",
"name": "Not Found Exception",
"message": "The requested resource was not found.",
"code": 0,
"status": 404
}
下面的列表總結(jié)了Yii的REST框架的HTTP狀態(tài)代碼:
200
: OK。一切正常。201
: 響應(yīng)?POST
?請求時成功創(chuàng)建一個資源。Location
?header 包含的URL指向新創(chuàng)建的資源。204
: 該請求被成功處理,響應(yīng)不包含正文內(nèi)容 (類似?DELETE
?請求)。304
: 資源沒有被修改??梢允褂镁彺娴陌姹?。400
: 錯誤的請求。可能通過用戶方面的多種原因引起的,例如在請求體內(nèi)有無效的JSON 數(shù)據(jù),無效的操作參數(shù),等等。401
: 驗證失敗。403
: 已經(jīng)經(jīng)過身份驗證的用戶不允許訪問指定的 API 末端。404
: 所請求的資源不存在。405
: 不被允許的方法。 請檢查?Allow
?header 允許的HTTP方法。415
: 不支持的媒體類型。 所請求的內(nèi)容類型或版本號是無效的。422
: 數(shù)據(jù)驗證失敗 (例如,響應(yīng)一個?POST
?請求)。 請檢查響應(yīng)體內(nèi)詳細(xì)的錯誤消息。429
: 請求過多。 由于限速請求被拒絕。500
: 內(nèi)部服務(wù)器錯誤。 這可能是由于內(nèi)部程序錯誤引起的。