asp.net – .NET Web API HttpResponseMessage模式?
|
所以我看到Web API 2控制器返回HttpResponse和实际对象.例: public HttpResponseMessage Get(string id)
{
var app = apps.Single(c => c.Id == id);
return new HttpResponseMessage(HttpStatusCode.OK)
{
Content = new ObjectContent<object>(app,Configuration.Formatters.JsonFormatter)
};
}
要么 public Application Get(string id)
{
return apps.Single(c => c.Id == id);
}
我的问题是“正确”的方式? #2要短得多但是#1更好或#2自动做#1#? 解决方法请参阅 this和 this SO问题.两种情况下的响应都是相同的(HttpResponseMessage). HttpResponseMessage允许您使用HTTP协议(例如,通过Headers属性)并统一您的返回类型. 返回CLR类型可以更具可读性,但是您可以放松使用不同状态代码返回不同类型的灵活性,除非您使用动态或对象来抵消返回特定类型的目的. 就个人而言,我更喜欢使用IHttpActionResult(在v2中添加)并在控制器操作上为预期的返回类型指定ResponseTypeAttribute以提高可读性. [HttpGet]
[ResponseType(typeof(Portfolio))]
public IHttpActionResult GetPortfolio([FromUri] long id)
{
// get portfolio
return Ok(portfolio);
}
您可以使用默认的IHttpActionResult实现轻松地操作响应消息(以RESTful方式)(请参阅上面的OkResult).避免自己构造HttpResponseMessage也可以保持代码清洁. Here是关于IHttpActionResult的官方文章,here是关于HttpResponseMessage和IHttpActionResult的有趣的SO对话. (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc – ASP.Net MVC:dbml文件的最佳实践
- asp.net – Visual Studio 2008,2010或2012(v11)是否写入使
- asp.net – __dopostback未定义在IE 11上Windows预览8.1
- 在asp.net mvc中的RedirectToAction用法
- asp.net-mvc – 用于MVC初学者的MVC 5或MVC 6
- asp.net-mvc – 没有ViewContext的Url表单操作
- asp.net-mvc-3 – ASP.NET MVC 3本地化验证消息在我的机器上
- asp.net-mvc-routing – ASP.NET MVC区域:如何隐藏URL中的
- asp.net-mvc – 我何时以及为什么要考虑asp.net MVC?
- asp.net-mvc – 如何使ASP.NET MVC mini分析器与Linq 2 SQL
