【发布时间】:2014-03-12 14:09:04
【问题描述】:
我一直在使用 WebApi 进行开发,并转向 WebApi2,其中 Microsoft 引入了一个新的 IHttpActionResult 接口,似乎建议使用它而不是返回 HttpResponseMessage。我对这个新界面的优势感到困惑。它似乎主要只是提供了一种稍微更简单的方法来创建HttpResponseMessage。
我认为这是“为抽象而抽象”。我错过了什么吗?除了可以节省一行代码之外,我使用这个新界面还能获得哪些现实世界的优势?
旧方式(WebApi):
public HttpResponseMessage Delete(int id)
{
var status = _Repository.DeleteCustomer(id);
if (status)
{
return new HttpResponseMessage(HttpStatusCode.OK);
}
else
{
throw new HttpResponseException(HttpStatusCode.NotFound);
}
}
新方式(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的示例为例,我在 9545 毫秒 内得到了响应。 * 使用IHttpActionResult我在 294 毫秒 内得到了相同的响应。 -
@chrislesage 9545 毫秒几乎是 10 秒。即使是 294 毫秒也有点慢。如果你有任何超过 100 毫秒的东西,那么还有其他东西在起作用。这个故事不仅仅是遇到了 ete。
标签: c# asp.net-web-api httpresponse