在調(diào)用接口的過(guò)程中,可能出現(xiàn)下列幾種錯(cuò)誤情況:
服務(wù)器維護(hù)中,503
?狀態(tài)碼
HTTP/1.1 503 Service Unavailable
Retry-After: 3600
Content-Length: 41
{"message": "Service In the maintenance"}
發(fā)送了無(wú)法轉(zhuǎn)化的請(qǐng)求體,400
?狀態(tài)碼
HTTP/1.1 400 Bad Request
Content-Length: 35
{"message": "Problems parsing JSON"}
服務(wù)到期(比如付費(fèi)的增值服務(wù)等),?403
?狀態(tài)碼
HTTP/1.1 403 Forbidden
Content-Length: 29
{"message": "Service expired"}
因?yàn)槟承┰虿辉试S訪(fǎng)問(wèn)(比如被 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
?字段,以便于定位錯(cuò)誤,code
?字段則用于表示錯(cuò)誤類(lèi)型:
missing
: 說(shuō)明某個(gè)字段的值代表的資源不存在invalid
: 某個(gè)字段的值非法,接口文檔中會(huì)提供相應(yīng)的信息missing_field
: 缺失某個(gè)必須的字段already_exist
: 發(fā)送的資源中的某個(gè)字段的值和服務(wù)器中已有的某個(gè)資源沖突,常見(jiàn)于某些值全局唯一的字段,比如 @ 用的用戶(hù)名(這個(gè)錯(cuò)誤我有糾結(jié),因?yàn)槠鋵?shí)有 409 狀態(tài)碼可以表示,但是在修改某個(gè)資源時(shí),很一般顯然請(qǐng)求中不止是一種錯(cuò)誤,如果是 409 的話(huà),多種錯(cuò)誤的場(chǎng)景就不合適了)
更多建議: