我目前正在为我的组织制定 SOA 版本控制策略。我正在尝试确定应该在 WSDL 中的何处存储版本号(Major.Minor)。将对服务接口(interface)进行非破坏性更改(即添加新操作),对于这些非破坏性更改,我们只需增加次要编号。我们正在考虑使用 WSDL 的 targetNamespace 来存储版本,但我们担心将 WSDL 的 targetNamespace 从 1.0 更改为 1.1 可能会导致某些客户端发生重大更改。
谁能告诉我更改 WSDL 的 targetNamespace 会对特定 Web 服务的现有使用者产生什么影响。我使用 WCF 运行了一些测试,发现它不会破坏使用该服务的现有应用程序。但是,我想知道其他非 .NET 客户端是否仍然如此?
注意:我确实意识到更改 WSDL 引用的 XSD 的 targetNamespace 确实会导致重大更改。
最佳答案
将主版本号放入命名空间中。将主要和次要放在文档元素中。 Thomas Erl 有一本很棒的书涵盖了此类内容:Web Service Contract Design and Versioning for SOA 。这本书最好的一点是,它会让你思考你可能没有考虑过的事情,比如你是否计划/想要使用严格的、向后兼容或向前兼容的版本控制策略,以及每种策略的含义是什么。
关于soap - 如果我更改 WSDL 的 targetNamespace,是否会破坏现有的使用者?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9500854/