2012-05-21 55 views
0

我正在建立一個休息API,並想知道是否返回錯誤。目前,我的計劃是使用http狀態碼,但總是返回結果。如果發生錯誤,結果將如下所示。其他Api返回

{ 
"Data":[the data]," 
Errors":[the errors] 
} 

基本上,如果發生錯誤的HTTP狀態代碼的4XX或5XX將返回和錯誤集合返回的JSON將有更多的錯誤的詳細信息,利用數據部分是零。如果調用成功,將返回包含所請求數據的數據元素的Http狀態碼200,並且errors元素將爲空。

這是返回錯誤信息的好方法嗎?

回答

0

在我的設計中,我沒有在響應JSON對象中同時包含'data'和'errors'屬性。

如果API成功,我將只返回'數據'。 http狀態碼是2XXX。

如果API失敗,我會返回一個'error'對象。 http狀態遵循RFC 2616第10節中定義的規範。

我的錯誤對象的示例如下。

HTTP/1.1 404 Not Found 
X-Powered-By: Express 
Content-Type: application/json; charset=utf-8 
Content-Length: 100 
Date: Thu, 08 Nov 2012 07:07:05 GMT 
Connection: keep-alive 

{ 
    "type": "error", 
    "status": 404, 
    "message": "Not Found", 
    "help_url": "/api/help.html" 
}