簡體   English   中英

我們為WCF服務使用SOAP和REST端點。 ASP.NET Web API對我們意味着什么?

[英]We use both SOAP and REST endpoints for our WCF services. What will the ASP.NET Web API mean to us?

在我們的服務上,我們配置了多個端點,從而使我們可以向使用XML或JSON的SOAP 1.1和1.2客戶端以及HTTP客戶端發布相同的接口。 現在,WCF REST團隊已合並到ASP.NET團隊中,以創建Web API東西,這對我們未來意味着什么? 將WCF接口公開為XML / JSON服務是否仍受支持? 我們是否應該將REST端點移至Web API框架? 這將是MS REST堆棧的最后轉變嗎?

好問題。 我不在Microsoft工作,也沒有任何內部信息,但是我的理解是WCF將能夠永遠公開XML和JSON。 實際上,如果您僅公開JSON或XML端點,那么您就沒有進行REST。 真正的問題是,您是將HTTP動詞(DELETE,PUT,POST,GET)用作API的一部分,還是只是公開與SOAP方法等效的方法。 如果您使用的是HTTP動詞,那么將REST部分遷移到WebAPI可能是一個很好的長期策略。 如果不是,那么您可以快樂地使用WCF(繼續告訴您的客戶,您出於市場營銷的原因而使用REST,無論如何向人們推銷都是一個流行語)。

如果您使用的是HTTP動詞,則同時擁有WCF和WebAPI並不難。 您需要做的就是從服務本身中刪除所有邏輯,並將其作為業務層方法公開。 然后,服務的兩個孩子都可以使用這些方法,以適當的方式調用它們並確定結果。

要回答這個問題,您需要對ASP.NET Web API有一些了解。

最初的ASP.NET Web API是WCF Web API ,它是Codeplex上的一個項目,用於擴展WCF,以使其更易於支持REST風格的服務。 WCF完全基於SOAP作為其核心消息傳遞類型而構建,因此將HTTP用作傳輸層協議以外的其他任何東西都需要使用不同的方法,具有不同的屬性集,並且通常與框架的其余部分不能很好地結合。

WCF Web API正在以支持HTTP作為應用程序級傳輸機制所需的所有方式擴展WCF框架。 它引入了基於資源URI的請求路由,根據Accept標頭的動態格式設置以及WCF以前缺少的其他功能。

但是,很明顯,在開發過程中,這些技術已經存在於.NET中的MVC堆棧中。 因此,他們決定,他們將工作移交給ASP.NET MVC團隊,而不是擁有兩套相互競爭的技術,從而誕生了ASP.NET Web API


如果您要進行REST風格的服務,則ASP.NET Web API比WCF框架更適合您的需求。 WCF團隊將不會繼續支持REST風格的體系結構。 Web API有效地包含了WCF框架的這些功能,在Web API中,WAPI框架找到了更為自然的契合度

您是否應該重新編寫服務以使用新的Web API? 好吧,WCF的REST功能不會突然停止工作。 僅當此舉為您提供了一些您需要的功能(例如動態內容格式選擇),或者您正在尋求不斷開發API(因為Web API比WCF明顯更易於使用)時,才應考慮此舉。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM