J'ai développé avec WebApi et suis passé à 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. Elle semble principalement fournir un moyen LÉGÈREMENT plus facile de créer un HttpResponseMessage
.
Je pourrais argumenter 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 é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 augmenté avec certaines appels que j'ai faits : * Avec un exemple utilisant
HttpResponseMessage
j'ai reçu la réponse en 9545 ms. * En utilisantIHttpActionResult
j'ai obtenu la même réponse en 294 ms.0 votes
@chrislesage 9545 ms est presque 10 secondes. Même 294 ms est assez lent. Si vous avez quelque chose prenant plus de 100 ms alors quelque chose d'autre est à l'œuvre là-bas. Il y a plus à cette histoire qu'il n'y paraît.