我想知道在我的ApiController中使用HttpResponseMessage作为返回类型有什么好处?比较直接返回键入的实体或集合.
我们试图确定一个实践,以保持我们正在进行的项目的一致性.
Dar*_*ler 13
HttpResponseMessage当您尝试将控制器层用作HTTP协议和内部.Net服务之间的转换时,返回非常有用.它允许直接控制HTTP有效负载和标头.它可以很容易地返回202,204,304,303响应.它可以轻松设置缓存标头.您可以明确控制响应的媒体类型.
通过返回一个对象,您可以有效地向架构中添加"不执行任何操作"层.考虑....
public Foo Get(int id) {
return _fooRepository.GetFoo(id)
}
Run Code Online (Sandbox Code Playgroud)
这种方法的目的是什么?它增加了什么价值?至少在MVC领域,控制器具有匹配模型和视图的作用.
当您从APIController返回对象时,您必须使用一组特定于Web API/MVC的抽象来间接影响HTTPResponseMessage,并且在HTTP世界中没有相应的概念.Formatters,ActionFilters,ModelBinders,HttpResponseException都是基础结构,旨在允许框架在后台处理您的HTTP请求和响应消息.
直接返回HttpResponseMessage需要您的控制器方法完成返回所需HTTP消息所需的工作.
我不相信它会给你的应用程序增加任何复杂性,它只会使正在发生的事情变得可见.
这取决于您是否希望将Web API用作"通过HTTP远程对象"框架(在这种情况下,我还将查看ServiceStack),或者您是否希望利用HTTP作为应用程序协议.
| 归档时间: |
|
| 查看次数: |
3018 次 |
| 最近记录: |