SOAP - 方法参数的最佳实践

时间:2012-09-28 19:35:01

标签: soap soa

拥有这样的方法是否更好:

#1 void AddPerson(Person p);

#2 void AddPerson(int id, string lastName, string firstName);

解释

我注意到的一个问题是我无法将我的网络浏览器指向AddPerson并测试#1,但我可以为#2。

2 个答案:

答案 0 :(得分:3)

除了 ahus1 之外,创建一个单独的Person.xsd XML模式几乎总是一个好主意,因为这样你可以将这个Person.xsd导入其他XML模式,如Invoice。 xsd,创建一种通用语言来描述您的业务。

此外,它使协调服务变得更加简单,假设您可能将给定的客户属性赋予实际来自人员类型的Invoice。这样,您可以在一步中将客户值分配给其他Person元素,而不必在每个步骤中复制所有Person属性。

您可以在Canonical Schema SOA Pattern找到关于此方法的好处的详细信息。

答案 1 :(得分:2)

如果您传递的是人而不是不同的元素,那么当您将来增强Person时(例如出生日期)对您来说会更容易:您的方法名称保持不变,您只需增强您的域模型填充或者在您需要的地方阅读出生日期。

此外,您会发现只要您获得嵌套对象(如果您想添加地址),Person而不是元素将为您的方法提供统一的方式。

祝你好运, 亚历山大。