4

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

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

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

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

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

4

2 回答 2

5

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 的这条推文。

于 2011-11-09T17:29:12.690 回答
0

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

通常问题归结为(1)您需要哪些特定功能以及(2)您更熟悉哪些技术。

WCF 的一些特性非常简洁,在 MVC 中不可用(如二进制序列化、无需 IIS 的托管能力等),但这些特性通常不是 REST API 中的要求。

总的来说,我会说:

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

  • 如果您已经有一个 MVC 站点并希望将其公开为 REST API 坚持使用 MVC。

于 2011-11-09T19:04:47.393 回答