今天我讀了很多關於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