标题确实总结了我的问题。 我已经使用这两种技术,但我不确定的是人们提供比其它显着不同。 在本质上:
选择ASP MVC或Web API时,设计一个基于REST的Web应用程序时应该考虑什么样的标准和/或指导?
标题确实总结了我的问题。 我已经使用这两种技术,但我不确定的是人们提供比其它显着不同。 在本质上:
选择ASP MVC或Web API时,设计一个基于REST的Web应用程序时应该考虑什么样的标准和/或指导?
目的
ASP.NET MVC专注于让HTML的输出容易。 ASP.NET的Web API专注于让原始数据的输出容易。
在世界的WebForms,ASP.NET MVC将相当于.aspx页和ASP.NET Web API会的.asmx。
虽然没有什么是不可能的
虽然有可能使Web API输出HTML和MVC输出的原始数据,您将需要额外的工作。 例如,使得其他类中的Web API内容协商,或添加逻辑来处理在MVC的OData查询过程中处理文本/ HTML。
假设
两个MVC和Web API默认的假设也不同。 MVC默认假定用户提交的数据可以来自多个来源,无论是在查询字符串或形式。
默认的Web API假定基本类型来自查询字符串和非基本类型来自于形式。 它还假定你只想要阅读的形式身体一次,没有缓存,拥有更低的内存使用率和更好的性能。
逆着默认需要额外的工作,这对我来说,没有什么意义可言。
编辑:
此外,GET AJAX请求被阻止通过MVC的JsonResult默认情况下,防止CSRF,而网页API允许GET默认情况下AJAX请求。
更新MVC 6
MVC 6统一MVC和Web API,并允许您在MVC像返回的ViewResult或对象就像在网络API和框架会照顾内容的谈判,为您创建HTML,JSON或XML。 更低的内存使用率也到达MVC,使用什么,而不是由提供的System.Web其自定义的管道。
所以展望未来,还有的MVC和Web API之间没有区别。