调用mvc控制器方法和WCF WEB API Rest服务调用之间有什么区别?

时间:2011-11-09 17:17:07

标签: asp.net-mvc wcf web-services wcf-web-api

调用mvc控制器方法和WCF WEB API Rest服务调用有什么区别?

我可以创建一个mvc控制器post方法,允许我执行我需要的任何代码。

我还可以使用MVC创建WCF Web API REST服务。

这两种访问数据的方法有什么区别?

更具体地说,在这种情况下使用WCF的优势是什么?

2 个答案:

答案 0 :(得分:5)

WCF Web API处理开箱即用的XML和JSON,而你必须在使用MVC时“手动”创建XML和JSON(阅读:使用Serializers) - 这只是WCF Web的一个好处API over MVC。

另一个是WCF Web API提供的分离级别,例如实施服务逻辑与内容协商。

然而,您可以轻松使用IoC容器并对使用WCF Web API创建的API进行单元测试。

WCF Web API主要用于构建ReSTful API,而MVC只允许它创建它们 - 因此使用WCF Web API,您可以更轻松地创建ReST API。

如果您计划从头开始一个项目作为Web(ReST)Api,您应该从WCF Web API开始。

如果您计划从也提供ReSTful服务的网站开始,您应该建议使用MVC。

您还应该考虑Glenn Block的this tweet

答案 1 :(得分:0)

您可以使用其中任何一个完成典型的REST API。

通常问题归结为(1)您需要的具体功能和(2)您更熟悉的技术。

WCF的某些功能非常简洁,在MVC中不可用(如二进制序列化,无需主机托管等等),但这些功能通常不是REST API中的要求。

总的来说,我会说:

  • 如果您已经有一个WCF实现并希望将其作为REST API公开,请使用WCF进行实现。

  • 如果您已经有一个MVC站点,并希望将其作为带有MVC的REST API棒公开。