在調(diào)用接口的過程中,可能出現(xiàn)下列幾種錯誤情況:
服務(wù)器維護(hù)中,503
?狀態(tài)碼
HTTP/1.1 503 Service Unavailable
Retry-After: 3600
Content-Length: 41
{"message": "Service In the maintenance"}
發(fā)送了無法轉(zhuǎn)化的請求體,400
?狀態(tài)碼
HTTP/1.1 400 Bad Request
Content-Length: 35
{"message": "Problems parsing JSON"}
服務(wù)到期(比如付費的增值服務(wù)等),?403
?狀態(tài)碼
HTTP/1.1 403 Forbidden
Content-Length: 29
{"message": "Service expired"}
因為某些原因不允許訪問(比如被 ban ),403
?狀態(tài)碼
HTTP/1.1 403 Forbidden
Content-Length: 29
{"message": "Account blocked"}
權(quán)限不夠,403
?狀態(tài)碼
HTTP/1.1 403 Forbidden
Content-Length: 31
{"message": "Permission denied"}
需要修改的資源不存在,?404
?狀態(tài)碼
HTTP/1.1 404 Not Found
Content-Length: 32
{"message": "Resource not found"}
缺少了必要的頭信息,428
?狀態(tài)碼
HTTP/1.1 428 Precondition Required
Content-Length: 35
{"message": "Header User-Agent is required"}
發(fā)送了非法的資源,422
?狀態(tài)碼
HTTP/1.1 422 Unprocessable Entity
Content-Length: 149
{
"message": "Validation Failed",
"errors": [
{
"resource": "Issue",
"field": "title",
"code": "missing_field"
}
]
}
所有的?error
?哈希表都有?resource
,?field
,?code
?字段,以便于定位錯誤,code
?字段則用于表示錯誤類型:
missing
: 說明某個字段的值代表的資源不存在invalid
: 某個字段的值非法,接口文檔中會提供相應(yīng)的信息missing_field
: 缺失某個必須的字段already_exist
: 發(fā)送的資源中的某個字段的值和服務(wù)器中已有的某個資源沖突,常見于某些值全局唯一的字段,比如 @ 用的用戶名(這個錯誤我有糾結(jié),因為其實有 409 狀態(tài)碼可以表示,但是在修改某個資源時,很一般顯然請求中不止是一種錯誤,如果是 409 的話,多種錯誤的場景就不合適了)
更多建議: