xml - 网络服务 : Single String Parameter Or Complex Type Parameters

标签 xml web-services soap parameters web-standards

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

ThisMethodDoesSomething(ComplexType param)

ThisMethodDoesSomethingElse(AnotherComplexType param)

或者这个:

ThisMethodDoesSomethingAndSomethingElse(string xml)

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

最佳答案

我绝不会发送 XML 字符串。首先,“XML”与“字符串”不是一回事。他们不遵循相同的规则。

任何合理的客户端都可以递归地接受由基本类型和基本类型的列表或数组组成的复杂类型(C# 语法):

public class ComplexType1
{
    public int IntegerProperty {get;set;}
    public int[] ArrayOfIntegers {get;set;}
    public List<int> ListOfIntegers {get;set;} // Same as ArrayOfIntegers
}

public class ComplexType2
{
    public ComplexType1 CT1 {get;set;}
    public List<ComplexType1> LCT1 {get;set;}
}

坦率地说,任何无法处理上述问题的客户都应该退休。

关于xml - 网络服务 : Single String Parameter Or Complex Type Parameters,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3494569/

相关文章:

javascript - 从 url 无法将 XML 导入到 html

web-services - jax-rs rest webservice 身份验证和授权

web-services - 防止访问主域上子域的文件夹

asp.net - 在经典 ASP 中利用 SOAP

php - 快速许可证管理器 Web 服务不接受请求

android - EditText 不得包含 < 字符

xml - 如何从 R 对象创建 xml,例如,是否有 'listToXml' 函数?

android - 从 Android 中的 SOAP 网络服务获取响应

ajax - 将 SharePoint SOAP 与 jQuery GetListItems 一起使用 - 简单但无法解决!

ruby-on-rails - 传输编码无效