我的问题可以用标题来总结。我已经使用了这两种技术,但我不确定它们之间有什么实质性的区别。因此:
在设计restful web应用程序时,选择ASP MVC或Web API时应该考虑哪些标准和/或指导?
在设计restful web应用程序时,选择ASP MVC或Web API时应该考虑哪些标准和/或指导?
目的
ASP.NET MVC专注于使HTML输出变得简单。ASP.NET Web API专注于使原始数据输出变得简单。
在WebForms世界中,ASP.NET MVC相当于.aspx页面,而ASP.NET Web API则相当于.asmx。
虽然没有什么是不可能的
虽然可以使Web API输出HTML,MVC输出原始数据,但是需要进行额外的工作。例如,在Web API中创建额外的类来处理文本/ HTML内容协商或在MVC中添加逻辑以处理OData查询。
假设
默认情况下,MVC和Web API的假设也不同。MVC默认假设用户提交的数据可以来自多个来源,无论是在查询字符串中还是在表单中。
Web API默认假设原始类型来自查询字符串,非原始类型来自表单。它还假定您只想读取一次表单体,而不缓存,以实现更低的内存使用和更好的性能。
违反默认设置需要进行额外的工作,这对我来说完全没有意义。
编辑:
MVC的JsonResult默认阻止GET AJAX请求以防止CSRF攻击,而Web API默认允许GET AJAX请求。
MVC 6更新
MVC 6统一了MVC和Web API,并允许您返回像MVC中的ViewResult或Web API中的对象,框架将负责内容协商,为您创建HTML,JSON或XML。通过使用其自定义管道而不是System.Web提供的管道,MVC也实现了更低的内存使用。
因此,未来MVC和Web API之间没有区别。