调用 mvc 控制器方法和 WCF WEB API 休息服务调用有什么区别?
我可以创建一个 mvc 控制器 post 方法,它允许我执行我需要的任何代码。
我还可以使用 MVC 创建 WCF Web API REST 服务。
这两种访问数据的方法有什么区别?
更具体地说,在这种情况下使用 WCF 有什么优势?
调用 mvc 控制器方法和 WCF WEB API 休息服务调用有什么区别?
我可以创建一个 mvc 控制器 post 方法,它允许我执行我需要的任何代码。
我还可以使用 MVC 创建 WCF Web API REST 服务。
这两种访问数据的方法有什么区别?
更具体地说,在这种情况下使用 WCF 有什么优势?
WCF Web API 开箱即用地处理 XML 和 JSON,而在使用 MVC 时您必须“手动”创建 XML 和 JSON(阅读:使用序列化程序)——这只是 WCF Web API 优于 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 的这条推文。
您可以使用其中任何一个来完成典型的 REST API。
通常问题归结为(1)您需要哪些特定功能以及(2)您更熟悉哪些技术。
WCF 的一些特性非常简洁,在 MVC 中不可用(如二进制序列化、无需 IIS 的托管能力等),但这些特性通常不是 REST API 中的要求。
总的来说,我会说:
如果您已经有 WCF 实现并希望将其作为 REST API 公开,请使用 WCF。
如果您已经有一个 MVC 站点并希望将其公开为 REST API 坚持使用 MVC。