维护 API Rest 的多个版本

rkm*_*max 6 javascript architecture rest node.js ios

我有一个用 Express 制作的 API Rest,它由 iOS 客户端使用。有时我必须对某些端点进行更改(重大更改),我将发布一个新构建的 iOS 应用程序,但如果客户端正在运行该应用程序并且我部署了新的后端版本,则可能并非所有用户都更新客户端事件。

  1. 如何维护多个版本的后端?
  2. 在代码中没有复杂规则的情况下,有什么好方法可以做到这一点
  3. 如果我执行基的不同倍数实例并以正确的版本响应每个客户端,现在要处理数据库吗?

@MikeBrant 如何提议我将缩小范围

我正在使用

  • 节点
  • 表达
  • Postgres

我没有使用像sailjs或loopback这样的框架

rmp*_*rmp 0

Mike 是对的,很难说适合您的特定 API 的最佳解决方案是什么。不过,为了给您提供一个可能的解决方案,这里提供一个非常简单的方法来维护不同的 API 版本。当然,这基于很多假设,可能不是您的 API 的最佳或最干净的解决方案。

对于简单的 API,您可以通过在应用程序中定义常量来维护不同的版本。该常量将是 API 端点根目录的路径。通常,它会与您的应用程序版本具有相同的名称,例如“myApp/v1-8-5/”,假设您的应用程序版本为 1.8.5。在服务器端,您将为应用程序的每个版本维护一个包含完整 API 的目录。您的应用程序的每个新版本,您都需要更新常量并将新目录添加到您的端点。

这不是最优雅的解决方案,如前所述,它可能不是满足您需求的最佳解决方案,但它是一个解决方案......