ASP.NET Core API ---狀態碼


摘錄自:https://www.cnblogs.com/cgzl/p/9047626.html

 

狀態碼是非常重要的,因為只有狀態碼會告訴API的消費者:

  • 請求是否如預期的成功,或者失敗
  • 如果出現了錯誤,誰該為這個錯誤負責

列舉一下web API會用到的狀態碼:

200級別,表示成功:

  • 200 - OK
  • 201 - Created,表示資源創建成功了
  • 204 - No content,成功執行,但是不應該返回任何東西

400級別,表示客戶端引起的錯誤:

  • 400 - Bad request,表示API的消費者發送到服務器的請求是錯誤的
  • 401 - Unauthorized,表示沒有權限
  • 403 - Forbidden,表示用戶驗證成功,但是該用戶仍然無法訪問該資源
  • 404 - Not found,表示請求的資源不存在
  • 405 - Method not allowed,這就是當我們嘗試發送請求給某個資源時,使用的HTTP方法卻是不允許的,例如使用POST api/countries, 而該資源只實現了 GET,所以POST不被允許
  • 406 - Not acceptable,這里涉及到了media type,例如API消費者請求的是application/xml格式的media type,而API只支持application/json
  • 409 - Conflict,表示該請求無法完成,因為請求與當前資源的狀態有沖突,例如你編輯某個資源數據以后,該資源又被其它人更新了,這時你再PUT你的數據就會出現409錯誤;有時也用在嘗試創建資源時該資源已存在的情況。
  • 415 - Unsupported media type,這個和406正好返回來,比如說我向服務器提交數據的media type是xml的,而服務器只支持json,那么就會返回415
  • 422 - Unprocessable entity,表示請求的格式沒問題,但是語義有錯誤,例如實體驗證錯誤。

500級別,服務器錯誤:

  • 500 - Internal server error,這表示是服務器發生了錯誤

 

默認情況下 JsonResult會返回200 OK狀態碼,可以去修改JsonResult以支持其它的狀態碼。但是Controller里提供了一些幫助方法返回IActionResult並指定特定的狀態碼,針對200,就是Ok()方法

針對單個資源,如果沒有找到,就需要返回404 Not Found,這時就可以使用Controller的幫助方法 NotFound().

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM