Jas*_*rup 13 soap axis2 web-services backwards-compatibility
所以我对Web服务有点新意,最近出现了一种情况,我们在数据类型中添加了一个返回给客户端的元素.客户抱怨这打破了他们的实施,因为它扼杀了它没想到的新元素.(我们通过Axis2提供服务).
对我来说,这似乎是一个无害的变化,客户端应该能够优雅地处理(我已经使用了一些非Web服务框架,其中添加可选信息是完全可以接受的).我可以理解,如果我们删除或重命名了一些会导致客户端出现问题的字段.
基本上我希望wsdl像界面一样.如果我们进行基本上是接口的子类型的更改,我希望客户端愉快地忽略无关的元素.这只是网络服务的短暂出现,还是有一种理智的方式对服务进行被动更改,以便新客户可以获得额外的数据,而老客户可以在闲暇时更新?
WSDL实际上不仅仅是一个接口,而是一个契约.WSDL确切地描述了操作期望"接收"的内容以及它期望"返回"的内容.与此最接近的类比是在C中更改函数的原型而不更改函数本身,它们不会匹配并导致问题.
WSDL越具体,您就越"保证"到位.
如果您需要灵活处理返回的数据(即添加/删除字段等),您可以执行以下操作之一:
2存在更多风险,但可以使用XSD或其他技术进行管理.您的特定项目要求将决定什么是可接受的.
| 归档时间: |
|
| 查看次数: |
12379 次 |
| 最近记录: |