SOAP-方法参数的最佳实践
有这样的方法更好吗: #1SOAP-方法参数的最佳实践,soap,soa,Soap,Soa,有这样的方法更好吗: #1void AddPerson(Person p) 或 #2void AddPerson(int-id,string-lastName,string-firstName) 解释一下 我注意到的一个问题是,我无法将我的web浏览器指向AddPerson并测试#1,但我可以测试#2 如果您传递的是一个人而不是不同的元素,那么在将来增强此人时会更容易,例如使用出生日期:您的方法名称保持不变,您只需在需要时增强域模型填充或读取出生日期 此外,您还会发现,一旦获得嵌套对象(如果您想
void AddPerson(Person p)代码>
或
#2void AddPerson(int-id,string-lastName,string-firstName)代码>
解释一下
我注意到的一个问题是,我无法将我的web浏览器指向AddPerson并测试#1,但我可以测试#2 如果您传递的是一个人而不是不同的元素,那么在将来增强此人时会更容易,例如使用出生日期:您的方法名称保持不变,您只需在需要时增强域模型填充或读取出生日期
此外,您还会发现,一旦获得嵌套对象(如果您想添加地址),一个人而不是元素将为您的方法提供统一的方式
致以最良好的祝愿,
Alexander.除了ahus1所说的之外,创建一个单独的Person.xsd XML模式几乎总是一个好主意,因为通过这种方式,您可以将这个Person.xsd导入到其他XML模式(如Invoice.xsd)中,创建一种公共语言来描述您的业务
此外,它使协调服务变得更加简单,想象一下,您可能会将一个给定的客户atribute放入实际上来自个人类型的发票中。通过这种方式,您可以在一个步骤中将customer值分配给其他Person元素,而不必在每个步骤中复制所有Person属性
您可以在SOA模式中找到关于这种方法好处的好信息。您已经用SOAP标记了这个问题-您将如何用浏览器来测试这个问题,因为SOAP通常会在请求和响应中包含XML?使用Web浏览器或curl来测试SOAP并不容易,您最好使用SOAPUI来创建测试和模拟。此外,在您的服务名称中,避免使用弱(一般)动词,如add或process,并使用强(特定)动词,如register、submit或create from business domain术语,如CreditCustomer、OnlineCustomer。在这方面,用例命名约定将很好地为您服务。