簡體   English   中英

從ASP.net Web服務返回和發送數據

[英]Returning and Sending data from an ASP.net Web Service

當前,我們有許多Web服務,當我們向它們發送數據時,我們將其作為字符串發送,該字符串是XML塊,然后Web服務解析並完成一些工作。

同樣,當我們需要Web服務中的數據時,我們將返回一個字符串,該字符串再次是客戶端應用程序解析的XML塊。

這樣做有弊端嗎? 我們還應該返回序列化為xml的類型嗎?

JD

如果將XML作為字符串發送並作為字符串返回,則最好使用REST。

Web服務的全部要點是為您處理了XML序列化和反序列化(編組/解組),因此只需傳遞復雜的類型或將Request對象作為輸入並返回Response對象。

您無需任何努力即可獲得強大的打字能力。

使用這種類型的Web服務時,我更喜歡使用序列化方法。 但是,您可能會看WCF,因為它比ASMX Web服務具有許多優勢。

缺點:

  • 為了調用Web服務,客戶端需要知道作為參數傳遞的XML的結構以及為了有意義而返回的XML的結構。
  • 您正在執行反映性能的雙重序列化/反序列化

對於Web服務,我之前已經完成了xml in / out方法。 我要做的是嘗試參數傳遞的“ 契約 ”模型。 總體來說效果很好,使事情易於實現和修訂。

我遵循的實現是為我的輸入/輸出xml創建架構,然后使用xsd生成用於序列化的類。 因此,在我的Web服務中,我只是使用強類型對象並在xml中進行序列化處理實際的請求和響應。

一些優點

  1. 通過在參數模式中創建名稱空間的新版本,可以輕松修改入站和出站參數。 結果,您不必更改客戶端調用的Web方法(它們只需更改他們處理您必須執行的輸入和輸出的方式)
  2. 有助於向后兼容-您發送1.0命名空間請求,並獲得1.0命名空間響應。
  3. 您可以針對架構驗證您的輸入xml,並在對象類型中添加其他驗證。

一些缺點

  1. 與COM相同的修訂問題(您可以輕松地達到一些不同版本的Web服務參數的浮動狀態,何時才能完全擺脫它們?)
  2. 序列化可能會影響性能。 對於我的Web服務而言,影響不大,但是您的Web服務可能具有與我的不同的吞吐量/需求。

與基於SOAP的Web服務不同,沒有針對RESTful Web API的“正式”標准。 這是因為REST是一種體系結構樣式,而SOAP是一種協議。 即使REST本身不是標准,但大多數RESTful實現都使用HTTP,URI,JSON和XML等標准。 在這里查看詳細信息

暫無
暫無

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

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