调用mvc控制器方法和WCF WEB API Rest服务调用有什么区别?
我可以创建一个mvc控制器post方法,允许我执行我需要的任何代码。
我还可以使用MVC创建WCF Web API REST服务。
这两种访问数据的方法有什么区别?
更具体地说,在这种情况下使用WCF的优势是什么?
答案 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棒公开。