J'ai développé avec WebApi et j'ai ensuite migré vers WebApi2 où Microsoft a introduit une nouvelle interface IHttpActionResult
qui semble être recommandée d'être utilisée plutôt que de retourner un HttpResponseMessage
. Je suis confus sur les avantages de cette nouvelle interface. Il semble surtout fournir un moyen LÉGÈREMENT plus simple de créer un HttpResponseMessage
.
Je soutiendrais que c'est de "l'abstraction pour l'abstraction". Est-ce que je rate quelque chose? Quels sont les avantages concrets que j'obtiens en utilisant cette nouvelle interface, à part peut-être gagner 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 se sont nettement améliorées avec certains appels que j'ai faits : * Avec un exemple utilisant
HttpResponseMessage
, j'ai reçu la réponse en 9545 ms. * En utilisant leIHttpActionResult
, j'ai reçu la même réponse en 294 ms.0 votes
@chrislesage 9545 ms, c'est presque 10 secondes. Même 294 ms est assez lent. Si quelque chose prend plus de 100 ms, alors il y a autre chose en jeu. Il y a plus dans cette histoire qu'il n'y paraît.