今天我读了很多关于ASP.net Web API的内容。我是否理解正确,如果我需要一个只需要HTTP作为传输的WebService,我可以使用ASP.net API而不需要WCF? 到目前为止,看起来Web API比WCF更容易使用。
最佳托马斯
答案 0 :(得分:4)
你的问题的答案基本上是肯定的。如果你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服务的因素:
有利于RESTful服务的因素:
修改强> 在回应您的评论时,如果您使用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。