代码之家  ›  专栏  ›  技术社区  ›  Dimitri C.

SOAP/WSDL中的API能否轻松保持向后兼容?

  •  5
  • Dimitri C.  · 技术社区  · 16 年前

    例如:

    • 向现有函数添加参数
    • 删除函数
    • 从现有函数中删除参数
    • 从现有函数中使用的现有结构中删除变量
    • 更改现有函数中使用的参数类型
    • 更改现有函数中参数的顺序
    • 重命名现有函数
    • 重命名参数

    2 回复  |  直到 16 年前
        1
  •  3
  •   JProgrammer ewernli    15 年前

    据我所知,没有像SOAP/WSDL标准那样的东西。但解决这些问题的工具是存在的。例如,在Glassfish中,可以指定 用于转换web服务的请求/响应的样式表。其他解决方案,如OracleSOASuite,提供了更精细的工具来管理web服务的版本控制和组件的集成。信息可以是 路由 自动转换为web服务的不同版本和/或 转化 . 您需要检查您的目标基础架构提供了什么。

    编辑 :

    XML和XSD在模式演化方面比面向对象语言中的类型和序列化更灵活。一些东西可以通过简单地将它们声明为可选的来向后兼容,例如。

    • 向现有函数添加参数 null 如果客户端不发送,则返回值
    • -如果该值是可选的,则得到 无效的
    • 删除函数 -这里没有魔法
    • -根据新定义,客户端发送的参数将是多余的,并且将被忽略
    • -我不知道在这种情况下
    • 更改现有函数中使用的参数类型 -这取决于变化。对于简单类型,序列化/反序列化可能仍然有效,例如字符串到int。

    请注意,我不是100%确定的名单。但是一些测试可以告诉你哪些有效,哪些无效。关键是XML是通过网络发送的,因此它提供了一些灵活性。

        2
  •  3
  •   troelskn    16 年前

    更一般地说,这是一个体系结构问题,而不是技术问题。一旦发布了接口,您就需要考虑如何处理更改。