我应该使用 ASMX 服务还是 ASP.NET Web API 来创建两个简单的 API?
我想在我的 ASP.NET MVC 项目中创建两个简单的 API。其中一个接受3个参数(currentUserID
, DataType
, ActionName
),并返回这些参数以及所请求数据的 XML 字符串。该 API 被客户端 JavaScript 代码使用。另一个 API 接收一个 XML 字符串,并在服务器端使用它来执行数据库操作。
我应该使用 ASMX 服务还是 ASP.NET Web API 来创建两个简单的 API?
我想在我的 ASP.NET MVC 项目中创建两个简单的 API。其中一个接受3个参数(currentUserID
, DataType
, ActionName
),并返回这些参数以及所请求数据的 XML 字符串。该 API 被客户端 JavaScript 代码使用。另一个 API 接收一个 XML 字符串,并在服务器端使用它来执行数据库操作。
发布 asp.net Web API 后,ASP.NET MVC 框架的未来是什么?
基本上,微软提供的用于开发网络服务的框架有:ASMX。基于SOAP的XML服务。
WCF。基于SOAP的Web服务。这些服务是传统ASMX服务的演变,基本上它们专注于将服务本身与传输协议分离。这就是为什么您可以使用多个终结点和因此多个协议(TCP、HTTP、命名管道、MSMQ、HTTPS)公开相同的服务。这种灵活性带来了配置问题。社区对WCF的主要抱怨之一是繁琐而广泛的配置。
WEB API。基于HTTP而不是SOAP。这个新API是一个创建服务的新框架。与其他两个前辈的主要区别在于它基于HTTP而不是SOAP,因此您可以使用几个HTTP功能,例如:
WEB API专注于编写服务以通过HTTP公开它们(目前仅限于HTTP)。如果您想使用另一种协议公开服务,则应考虑使用WCF。
WEB API基于MVC(如果您想知道它为什么基于MVC,那么很简单)
WCF Web API的另一个目标是融合已知的概念,帮助开发人员克服他们在WCF中面临的一些缺点,例如巨大的配置、过度使用属性以及不支持测试的WCF基础结构。因此,Web API使用IoC,启用了约定优于配置,并尝试提供更简单的配置环境。
ASP.NET MVC基础结构具有其优雅的处理HTTP请求和响应以及对易于创建控制器的支持,似乎是创建这种新类型服务的正确方式。
有关更详细的比较:
http://www.codeproject.com/Articles/341414/WCF-or-ASP-NET-Web-APIs-My-two-cents-on-the-subjec
webHttpBinding
- 这使得创建混合SOAP / REST服务成为可能,只需一个代码库和适当的配置即可。 - marc_s看起来你在很多方面都在使用Views,所以我认为Web API可能是此时更简洁的解决方案。
如果可能的话,我会在MVC4中使用Web Api控制器。您可以返回一个通用的IEnumerable列表或模型,它会自动将数据输出到所请求的任何格式,比如xml或json。这相当惊人。