我正在使用WebAPI的MVC5网站。我已经定义了一个辅助类来处理传入请求的一些日志记录,可以为需要记录有关请求的数据的任何操作调用该日志。 (主要是IP地址,推荐人,网址和用户代理,加上一些标题值。)而且我遇到了麻烦......
Controller类有一个我使用的属性Request,它是'HttpRequestBase'类型。我假设ApiController中的Request属性是相同类型但不是,它是'HttpRequestMessage'。
这很烦人,所以它让我想知道我是否真的需要我的项目中的WebAPI。我想使用WebAPI返回网站本身使用的各种数据。为什么不使用常规控制器而不是ApiController?在单个项目中使用ApiController和Controller有什么好处?
请不要对使用常规控制器的WebAPI优于(或不优化)的原因提出意见。我需要知道WebAPI在控制器旁边使用的技术优势,而不仅仅是使用控制器!
答案 0 :(得分:4)
WebAPI控制器专门用于API,而MVC控制器更适合返回视图。
虽然两者都可以处理这两种情况,但WebAPI控制器有一些功能可以使API更容易:
两种类型的控制器之间的区别有点不幸。最后,他们做同样的事情。
这也是为什么在ASP.NET核心中,WebAPI和MVC已经合并的原因。您将找不到所描述的ASP.NET核心中的差异。如果这是你的选择,你就可以这样做。