模式/最佳实践参数WebService

时间:2010-06-16 12:14:06

标签: web-services design-patterns

我正在开发一个WebService,并希望以简单实用的方式让所有人都可以访问它。对于其中一个访问,我需要发送两条信息,一个令牌和一个XML。

在这种情况下,有疑问,我使用参数:String - String或String - XmlDocument?

好吧,换句话说,我的问题是,建议使用String参数是XML文档吗?你在这方面的经历是什么?

3 个答案:

答案 0 :(得分:1)

如果您要将XML发送到Web服务,那么您应该将其公开为XmlDocument,以确保查看服务定义的人了解需要传递的内容。

话虽如此,对于传统的SOAP服务,将XML blob作为参数通常被认为是不好的,因为它们不是自描述的,并且版本控制成为一场噩梦(您需要支持您的服务所有版本的XmlDocument)能够使用...所以如果你每年更改两次,那么在3年内你将需要能够支持6种不同的XML文档格式。

答案 1 :(得分:1)

如果您希望任何客户端都可以使用您的服务,那么传递XmlElement是不可取的。这不会将任何信息放入客户端可用于决定向您发送内容的WSDL中。

相反,传递一个简单的“数据传输对象”类。这将是一个没有行为的简单类,只有数据。例如:

public class PersonDTO
{
    public int ID {get;set;}
    public string Name {get;set;}
    public List<AddressDTO> Addresses {get;set;}
}

public class AddressDTO
{
    public string Line1 {get;set;}
    public string City {get;set;}
    public string PostalCode {get;set;}
}

让您的网络方法接受其中一个作为参数,几乎世界上每个客户都可以使用它。

答案 2 :(得分:-1)

我一直使用字符串参数。 我想,但我不确定,序列化的xmldocument比xml数据本身大。 除此之外,我认为PHP应用程序不能调用需要XmlDocument的Web服务。

相关问题