2009-12-10 82 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