【问题标题】:Backwards compatible PHP SOAP interface向后兼容的 PHP SOAP 接口
【发布时间】:2013-12-24 10:59:29
【问题描述】:

我有一个使用 SOAP 与另一个应用程序连接的 PHP Web 应用程序。为了在更新我的应用程序时保持连接,接口需要是一个向后兼容的版本。有谁知道如何解决这个问题,例如:

  • 为每个版本创建不同的输入(缺点:需要更多维护)
  • 在(唯一的)输入上创建一个层,将 XML 转换为新版本(优势:一种处理方式)

【问题讨论】:

  • 使用 SOAP,通常每个版本都有一个端点。然后客户端应用程序可以决定使用哪一个。在您的场景中,您将一直维护两个版本的 SOAP API。最后一个和当前一个。
  • 唯一的挑战是两个版本使用相同的数据库。那么如何处理在新版本中进行的复杂更改。
  • 好吧,无论后面的任何变化都不能影响界面访问它。您可能正在寻找外观或适配器模式。

标签: php xml api soap backwards-compatibility


【解决方案1】:

就个人而言,我倾向于在这种情况下部署应用的多个版本:

  • /api/0.1/
  • /api/0.2/

回答评论:没有特别的原因。当我开始这样做时,是为了方便:我将 svn checkout/update 一个位置的所有 svn 分支,而不是对独立文件夹中的每个分支进行 svn checkout。即使在我切换到 git 和其他部署方式时,它仍然存在多年。

我认为,与在 /api/ 中部署文件的 /api/{version}/ 设置相比,一个好处是,当您更新依赖项或重构代码时,您永远不会冒着旧版本 API 回归的风险。

【讨论】:

  • 你能说说为什么不在当前版本上使用该层吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多