Tôi lo ngại về cách chúng tôi trả lại lỗi cho khách hàng.
Có phải chúng tôi trả lại lỗi ngay lập tức bằng cách ném httpResponseException khi chúng tôi gặp lỗi:
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)
}
}
Hoặc chúng tôi tích lũy tất cả các lỗi sau đó gửi lại cho khách hàng:
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);
}
Đây chỉ là một mã mẫu, không có vấn đề gì về lỗi xác thực hoặc lỗi máy chủ, tôi chỉ muốn biết cách thực hành tốt nhất, ưu và nhược điểm của từng phương pháp.
HttpResponseException
lớp, trong đó có hai tham số được đề cập trong bài đăng của bạn - HttpResponseException("Customer Name cannot be empty", HttpStatusCode.BadRequest)
tức làHttpResponseException(string, HttpStatusCode)
ModelState
.