J'ai développé avec WebApi et suis passé à WebApi2 où Microsoft a introduit une nouvelle interface IHttpActionResult
qui semble être recommandée à utiliser plutôt que de retourner un HttpResponseMessage
. Je suis confus quant aux avantages de cette nouvelle interface. Il semble principalement offrir un moyen LÉGÈREMENT plus facile de créer un HttpResponseMessage
.
Je dirais que c'est de "l'abstraction pour l'abstraction". Est-ce que je rate quelque chose? Quels sont les avantages réels que j'obtiens en utilisant cette nouvelle interface, à part peut-être économiser une ligne de code?
Ancienne méthode (WebApi):
public HttpResponseMessage Delete(int id)
{
var status = _Repository.DeleteCustomer(id);
if (status)
{
return new HttpResponseMessage(HttpStatusCode.OK);
}
else
{
throw new HttpResponseException(HttpStatusCode.NotFound);
}
}
Nouvelle méthode (WebApi2):
public IHttpActionResult Delete(int id)
{
var status = _Repository.DeleteCustomer(id);
if (status)
{
//return new HttpResponseMessage(HttpStatusCode.OK);
return Ok();
}
else
{
//throw new HttpResponseException(HttpStatusCode.NotFound);
return NotFound();
}
}
1 votes
Je viens de trouver quelque chose d'intéressant. Je ne suis pas sûr si ces résultats peuvent être vérifiés par quelqu'un d'autre. Mais les performances ont beaucoup amélioré avec quelques appels que j'ai faits : * Avec un exemple utilisant
HttpResponseMessage
j'ai reçu la réponse en 9545 ms. * Utilisant leIHttpActionResult
j'ai reçu la même réponse en 294 ms.0 votes
@chrislesage 9545 ms représente presque 10 secondes. Même 294ms est assez lent. Si quelque chose prend plus de 100ms alors quelque chose d'autre est en jeu là. Il y a plus dans cette histoire qu'il n'y paraît.