Hataları istemciye döndürme biçimimizle ilgili endişelerim var.
Bir hata aldığımızda HttpResponseException durumunu atarak hatayı hemen döndürüyor muyuz:
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)
}
}
Veya tüm hataları biriktirip müşteriye geri göndeririz:
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);
}
Bu sadece bir örnek kod, doğrulama hataları veya sunucu hatası önemli değil, sadece en iyi uygulama, her yaklaşımın artılarını ve eksilerini bilmek istiyorum.
HttpResponseException
senin yazı belirtilen iki parametre alır sınıf herhangi bir kurucu aşırı almıyorum - HttpResponseException("Customer Name cannot be empty", HttpStatusCode.BadRequest)
yaniHttpResponseException(string, HttpStatusCode)
ModelState
.