今天我阅读了很多关于 ASP.net Web API 的内容。我是否理解正确,如果我需要一个只需要 HTTP 作为传输的 WebService,我可以使用 ASP.net API 而不需要 WCF?到目前为止,Web API 似乎比 WCF 更容易使用。
最佳托马斯
今天我阅读了很多关于 ASP.net Web API 的内容。我是否理解正确,如果我需要一个只需要 HTTP 作为传输的 WebService,我可以使用 ASP.net API 而不需要 WCF?到目前为止,Web API 似乎比 WCF 更容易使用。
最佳托马斯
你的问题的答案基本上是肯定的。如果您 a) 只想使用 HTTP,b) 希望您的内容以 XML 或 JSON 形式返回,c) 想要使用 RESTful API 并且 d) 不需要任何高级消息传递功能,那么 Web API 是您的最佳选择。正如您所指出的,它比 WCF 更容易使用。
创建 Web 服务时,您有两个基本选项:基于 SOAP 的服务或 RESTful API。如果您使用的是基于 SOAP 的服务,您应该使用 WCF。如果您使用的是 RESTful 服务,您应该使用 Web API。您可以查看此博客文章以进一步讨论:http: //blogs.microsoft.co.il/blogs/idof/archive/2012/03/05/wcf-or-asp-net-web-apis-my-两分钱的主题.aspx
顺便说一句,您选择 SOAP 还是 REST 取决于您的具体情况。一些一般准则如下:
有利于 SOAP 服务的因素:
支持 RESTful 服务的因素:
编辑: 响应您的评论,如果您使用 WCF/SOAP,您可以使用 SOAP 支持的广泛功能。这包括事务、可靠消息传递、各种消息传递模式(单向、双工等)和 WS-Security。这些标准由OASIS 标准机构维护,通常称为 WS-*。可以在此处找到 WS-* 标准的列表。
如果您使用 Web API/REST,则不能使用任何 WS-* 功能。但是,仍然可以使用 IIS 和 ASP.Net 中提供的标准身份验证技术对 RESTful 服务的访问进行身份验证和授权。有关这方面的更多信息,请参阅以下链接:
http://codebetter.com/johnvpetersen/2012/04/02/making-your-asp-net-web-apis-secure/
http://stevescodingblog.co.uk/basic-authentication-with-asp-net-webapi/
以及其中一些博客帖子。