2009-12-10 50 views
0

目前,我們有很多Web服務,當我們向他們發送數據時,我們會將它作爲一個字符串發送,這是一個XML塊,Web服務解析並執行一些工作。從ASP.net Web服務返回併發送數據

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

這樣做有缺點嗎?我們也應該返回的序列化到XML的類型?

JD

回答

2

如果您將XML作爲字符串發送並將其作爲字符串返回,那麼您最好使用REST。

Web服務的重點在於XML的序列化和反序列化(編組/解組)是由您負責處理的,所以只需傳入複雜類型或Request對象作爲輸入並返回Response對象。

而且你沒有任何努力就可以打字。

1

我更喜歡使用這種類型的webservice的序列化方法。但是,您可能會看到WCF,因爲它提供了許多優於ASMX Web服務的優勢。

1

幾個缺點:

  • 爲了調用Web服務的客戶端需要知道作爲參數傳遞以及與XML結構的XML的結構,以任何意義返回
  • 您正在執行雙串行/解串反映業績
1

我已經做了XML輸入/輸出方法之前,Web服務作爲。當我這樣做的時候,就是試用參數傳遞的「covenant」模型。它的整體效果非常好,使得實現和修改相當容易。

我遵循的實現是爲我的輸入/輸出xml創建模式,然後使用xsd爲序列化生成類。因此,在我的Web服務中,我只使用強類型對象並將其序列化到xml以處理實際的請求和響應。

有些職業選手

  1. 易於修改參數傳入和由參數模式創建命名空間的新版本outboud。因此,您永遠不必更改客戶端所調用的Web方法(它們只是改變它們處理您的輸入和輸出的方式,無論如何他們必須這樣做)
  2. 幫助向後兼容 - 您發送1.0命名空間請求並你alwasy得到一個1.0命名空間響應。
  3. 您可以根據模式驗證您的輸入xml,並在對象類型中添加其他驗證。

一些缺點

    是COM有(你可以很容易地得到你有一些浮動不同版本的Web服務參數的一點,當你能擺脫
  1. 同一版本的問題他們完全?)
  2. 序列化可能會影響性能。對於我的web服務來說,這並不是一個巨大的影響,但是您的web服務可能會比我的服務器有不同的吞吐量/需求。
0

與基於SOAP的Web服務不同,RESTful Web API沒有「官方」標準。這是因爲REST是一種架構風格,而SOAP是一種協議。儘管REST本身不是一個標準,但大多數RESTful實現都使用諸如HTTP,URI,JSON和XML等標準。 Check detail here