Web服务:单字符串参数或复杂类型参数

Bra*_*ley 6 xml parameters soap web-services web-standards

使用这些方法签名创建公开的Web服务或多或少是可接受的(即标准的):

ThisMethodDoesSomething(ComplexType param)

ThisMethodDoesSomethingElse(AnotherComplexType param)
Run Code Online (Sandbox Code Playgroud)

或这个:

ThisMethodDoesSomethingAndSomethingElse(string xml)
Run Code Online (Sandbox Code Playgroud)

正在执行的操作取决于传递给单个do-it-all方法的XML字符串?我一直和前者在一起,但我的同事更喜欢后者,我在开始一个新项目之前试图权衡两种策略的利弊.哪个更容易被公众接受,为什么?

dac*_*cot 0

我更喜欢(这是最重要的词,更喜欢,因为没有这方面的标准)一个复杂的 XML 字符串来解释该操作。你可以从我的开源项目中看到这一点。

我更喜欢它的一些原因......

  1. 你的行为是一种可以灵活解释的语言。
  2. 操作可以组合成单个网络行程。
  3. XML 允许扩展功能集,同时不会破坏过去的功能。
  4. XML 层次结构允许操作对服务器端的操作进行操作。