我們有API返回客戶詳細信息,即/ api/customers/{customerid} /。我們有以下情形:REST API:我們何時應該使用不同於流行的HTTP狀態碼?
- 如果傳遞客戶ID是非整數或高於最高(客戶ID)在我們的數據庫< = 0或更高,我們發回錯誤請求,即使用HTTP狀態碼400
- 如果請求這個API來自我們封鎖的任何IP,我們發回HTTP狀態碼403(禁止)。
- 如果客戶ID被刪除:我們發回404
我就在想,爲什麼我們真的需要考慮並有所有這些不同的HTTP狀態代碼?我們所需要的只是在客戶端上顯示一條適當的消息,我們可以通過返回所有以上情況的HTTP狀態代碼400輕鬆完成,並且對於所有以上三種情況,都只有不同的字符串消息。
這對我來說很合適,但我想知道我們什麼時候會不可避免地需要其他200,400和500這些特殊狀態代碼?
當我使用REST API時,我基於狀態碼做了很多工作,所以如果我得到了404,我會知道沒有客戶並繼續前進,但如果我得到403,我會看看爲什麼我無法訪問該用戶。一切標準400將使問題更難解決。 – Loaf
但android/ios/web客戶端只需要在這種情況下顯示消息,爲什麼我們會返回這些特殊的狀態碼? – maverick
@Loaf True。我無法計算所有時間'418'節省了我幾個小時的故障排除時間;) – jonahe