今天我读了很多关于ASP.net Web API的内容。我是否理解正确,如果我需要一个只需要HTTP作为传输的WebService,我可以使用ASP.net API并且不需要WCF? 到目前为止,看起来Web API比WCF更容易使用。我是否需要WCF如果我可以使用ASP.net Web API
最佳 托马斯
今天我读了很多关于ASP.net Web API的内容。我是否理解正确,如果我需要一个只需要HTTP作为传输的WebService,我可以使用ASP.net API并且不需要WCF? 到目前为止,看起来Web API比WCF更容易使用。我是否需要WCF如果我可以使用ASP.net Web API
最佳 托马斯
的回答你的问题基本上是肯定的。如果您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-two-cents-on-the-subject.aspx
另外,无论您选择SOAP还是REST,都取决于您的具体情况。一些常规准则如下:有利于SOAP服务
因素:
因素支持服务:
编辑支持: 作为对您的评论的回应,如果您使用WCF/SOAP,则可以使用SOAP支持的各种功能。这包括事务,可靠消息传递,各种消息传递模式(单向,双工等)和WS-Security。这些标准由the OASIS standard body维护,通常称为WS- *。 WS- *标准的列表可以在here找到。
如果您使用的是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/
和一些blog postings的。
您发现REST缺少WS-Security。这对实现具有认证/授权的API的目标有多大影响? – Thomas
根据您的评论,我在帖子中添加了一些信息。如果您使用的是Web API/REST,则不能使用任何WS- *功能,因为这是特定于SOAP的。但是,您可以使用IIS/ASP.Net中提供的其他技术对Web API服务进行身份验证和授权 –
非常感谢,非常有帮助。我认为对于我的应用程序来说Web API就足够了,同时,由于我们的应用程序的流量很大,我认为Web AIP会更好地执行。 – Thomas