WebAPI控制器在MVC控制器上有哪些优势?

时间:2017-11-26 00:09:51

标签: c# asp.net asp.net-web-api asp.net-mvc-5

我正在使用WebAPI的MVC5网站。我已经定义了一个辅助类来处理传入请求的一些日志记录,可以为需要记录有关请求的数据的任何操作调用该日志。 (主要是IP地址,推荐人,网址和用户代理,加上一些标题值。)而且我遇到了麻烦...... Controller类有一个我使用的属性Request,它是'HttpRequestBase'类型。我假设ApiController中的Request属性是相同类型但不是,它是'HttpRequestMessage'。
这很烦人,所以它让我想知道我是否真的需要我的项目中的WebAPI。我想使用WebAPI返回网站本身使用的各种数据。为什么不使用常规控制器而不是ApiController?在单个项目中使用ApiController和Controller有什么好处?

请不要对使用常规控制器的WebAPI优于(或不优化)的原因提出意见。我需要知道WebAPI在控制器旁边使用的技术优势,而不仅仅是使用控制器!

1 个答案:

答案 0 :(得分:4)

WebAPI控制器专门用于API,而MVC控制器更适合返回视图。

虽然两者都可以处理这两种情况,但WebAPI控制器有一些功能可以使API更容易:

  • 更明确的回复代码
  • 内容协商
  • get,post,put,delete,... verbs的命名约定
  • ...

两种类型的控制器之间的区别有点不幸。最后,他们做同样的事情。

这也是为什么在ASP.NET核心中,WebAPI和MVC已经合并的原因。您将找不到所描述的ASP.NET核心中的差异。如果这是你的选择,你就可以这样做。