Pracowałem z WebApi i przeniosłem się na WebApi2, gdzie Microsoft wprowadził nowy IHttpActionResultinterfejs, który wydaje się zalecany do użycia zamiast zwracania HttpResponseMessage. Jestem zdezorientowany zaletami tego nowego interfejsu. Wydaje się, że głównie zapewnia PO LEKKO łatwiejszy sposób utworzenia HttpResponseMessage.
Argumentowałbym, że jest to „abstrakcja ze względu na abstrakcję”. Czy coś brakuje? Jakie są rzeczywiste korzyści płynące z korzystania z tego nowego interfejsu oprócz oszczędzania linii kodu?
Stary sposób (WebApi):
public HttpResponseMessage Delete(int id)
{
var status = _Repository.DeleteCustomer(id);
if (status)
{
return new HttpResponseMessage(HttpStatusCode.OK);
}
else
{
throw new HttpResponseException(HttpStatusCode.NotFound);
}
}
Nowa droga (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();
}
}
HttpResponseMessage, otrzymałem odpowiedź w 9545 ms . * UżywającIHttpActionResultotrzymałem tę samą odpowiedź w 294 ms .