在ASP.NET Web API 中傳回錯誤的最佳實務
在處理ASP.NET Web API 中的錯誤時,有兩個主要方法處理方式:立即傳回錯誤或累積錯誤集中回傳。本文探討了每種方法的優缺點,並提供了建議的最佳實踐。
1.立即回傳錯誤
在第一種方法中,使用 HttpResponseExceptions 立即傳回錯誤。這適用於以下情況:
範例:
public void Post(Customer customer) { if (string.IsNullOrEmpty(customer.Name)) { throw new HttpResponseException("Customer Name cannot be empty", HttpStatusCode.BadRequest); } if (customer.Accounts.Count == 0) { throw new HttpResponseException("Customer does not have any account", HttpStatusCode.BadRequest); } }
2.累積並發回錯誤
第二種方法,錯誤會累積並在操作結束時集中返回。在以下情況下建議這樣做:
範例:
public void Post(Customer customer) { List<string> errors = new List<string>(); if (string.IsNullOrEmpty(customer.Name)) { errors.Add("Customer Name cannot be empty"); } if (customer.Accounts.Count == 0) { errors.Add("Customer does not have any account"); } var responseMessage = new HttpResponseMessage<List<string>>(errors, HttpStatusCode.BadRequest); throw new HttpResponseException(responseMessage); }
最佳實踐
雖然兩種方法都有其優點,建議的最佳實踐是立即返回錯誤。這:
但是,對於非致命錯誤是更大的驗證或處理階段的一部分,累積錯誤並將它們集中返回可能會更多
更新
本文隨著時間的推移不斷更新,包含部落格文章的見解和最佳實踐的變化:
以上是ASP.NET Web API 應如何傳回錯誤:立即傳回還是集體回傳?的詳細內容。更多資訊請關注PHP中文網其他相關文章!