什么被认为是对 WSDL 合同的非破坏性或向后兼容的更改? [英] What are considered non-breaking or backwards-compatible changes to a WSDL contract?
问题描述
此页面列出了以下示例:
- 向现有 WSDL 文档添加新的 WSDL 操作
- 在 WSDL 文档中添加新的 XML 模式类型,这些类型不包含在先前存在的类型中
但是有没有定义或者标准哪些更改被认为是向后兼容的指南.或者换句话说,您可以对合同进行哪些更改,并且仍然希望不会破坏您的客户.
But is there a definition or standard guideline for what changes are considered backwards-compatible. Or in other words, what changes can you make to your contract, and still expect not to break your clients.
推荐答案
我在这个特定主题上花了一些时间,并在 Thomas Erl 的一本书中找到了一些指南,我在底部引用了这些指南.这是他们要说的;
I have spent some time on this particular subject, and found some guidelines in a book by Thomas Erl which I refer to at the bottom. Here is what they have to say;
兼容的变化
- 添加新的 WSDL 操作定义和关联的消息定义
- 添加新的 WSDL 端口类型定义和关联的操作定义
- 添加新的 WSDL 绑定和服务定义
- 向消息定义添加新的可选 XML 架构元素或属性声明
- 减少消息定义类型的 XML 架构元素或属性的约束粒度
- 向消息定义类型添加新的 XML 架构通配符
- 添加新的可选 WS-Policy 断言
- 添加新的 WS-Policy 替代方案
不兼容的更改
- 重命名现有的 WSDL 操作定义
- 删除现有的 WSDL 操作定义
- 更改现有 WSDL 操作定义的 MEP
- 向现有 WSDL 操作定义添加错误消息
- 向消息添加新的必需 XML 架构元素或属性声明定义
- 增加 XML Schema 元素或属性声明的约束粒度消息定义
- 重命名消息中的可选或必需的 XML 架构元素或属性定义
- 删除可选或必需的 XML 架构元素或属性或通配符来自消息定义
- 添加新的必需 WS-Policy 断言或表达式
- 添加一个新的可忽略的 WS-Policy 表达式(大部分时间)
Thomas Erl 等人写了一本关于这个特定主题的好书;名称是 Web Service Contract Design &SOA 的版本控制.
There is a great book on this particular subject from Thomas Erl et al; The name is Web Service Contract Design & Versioning for SOA.
HTH.
免责声明:正如我所提到的,这是本书作者所做的工作,我只是分享它.无论如何,我也没有隶属关系;只是喜欢这本书 :)
Disclaimer: As I've mentioned, this is work done by the authors of the book and I'm merely sharing it. I'm also not affiliated in anyway; just liked the book :)
这篇关于什么被认为是对 WSDL 合同的非破坏性或向后兼容的更改?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!