Saya memiliki kekhawatiran tentang cara kami mengembalikan kesalahan ke klien.
Apakah kami segera mengembalikan kesalahan dengan melemparkan HttpResponseException ketika kami mendapatkan kesalahan:
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)
}
}
Atau kami mengakumulasikan semua kesalahan kemudian mengirim kembali ke klien:
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);
}
Ini hanya kode sampel, tidak masalah kesalahan validasi atau kesalahan server, saya hanya ingin tahu praktik terbaik, pro dan kontra dari setiap pendekatan.
HttpResponseException
kelas yang mengambil dua parameter yang disebutkan dalam posting Anda - HttpResponseException("Customer Name cannot be empty", HttpStatusCode.BadRequest)
yaituHttpResponseException(string, HttpStatusCode)
ModelState
.