J'ai des inquiétudes sur la façon dont nous renvoyons les erreurs au client.
Renvoyons -nous l'erreur immédiatement en lançant HttpResponseException lorsque nous obtenons une erreur:
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)
}
}
Ou nous accumulons toutes les erreurs puis les renvoyons au client:
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);
}
Ce n'est qu'un exemple de code, peu importe les erreurs de validation ou les erreurs de serveur, j'aimerais simplement connaître les meilleures pratiques, les avantages et les inconvénients de chaque approche.
HttpResponseException
classe qui prend deux paramètres mentionnés dans votre message - HttpResponseException("Customer Name cannot be empty", HttpStatusCode.BadRequest)
c'estHttpResponseException(string, HttpStatusCode)
ModelState
.