【发布时间】:2017-05-19 12:36:24
【问题描述】:
我目前正在为包含以下部分的软件系统开发最后一批更改(希望如此):
- Azure SQL Server 数据库后端。
- Azure 移动应用 API 中间件。
- iOS/Android 客户端。
我想知道版本#2 的最佳方式是什么,以便我可以使其API 与#3 保持同步。也就是说,我希望 iOS 客户端的 v1.0 只能调用 Azure API 的 v1.0。当我升级到 Azure API 的 v2.0(尝试保持相同的 API 方法名称)时,我希望 iOS 客户端的 v1.0 仍然可以访问 iOS 客户端的 API v1.0 和 v2.0 以访问 API v2.0。
从逻辑上讲,您似乎可以将 v1.0 复制到新的 v2.0 移动应用程序中。这样做的好处是将所有内容分开,无需更改 API 方法名称,只需更改 Azure SDK 客户端的基本 URL。但这显然实际上是站不住脚的,尤其是当您需要为高负载的客户提供服务时。这可能会导致一些相当高的费用。
我已经对我的 API 文件进行了子文件夹处理,这似乎对我调用它们的方式没有任何影响。如果我有一个ReallyCoolMethod.js 文件,它的位置似乎并不重要,只要它是根目录中api 文件夹的后代。我想避免这样的事情:
- v1.0:
ReallyCoolMethod.js - v2.0:
ReallyCoolMethod_v2.js
但这是最好的方法吗?有没有办法做到以下几点?
- root
|-- api
|-- v1
| |-- ReallyCoolMethod.js
|
|-- v2
|-- ReallyCoolMethod.js
如果是这样,我如何将来自InvokeAPI 的呼叫路由到正确的版本?
注意:我不是询问 Azure 移动服务和 Azure 移动应用程序之间的区别。我知道那里涉及一些版本控制问题,但这与我的问题无关。我的问题是关于单个 Azure 移动应用程序和该单个应用程序容器中不同版本的 my API。
【问题讨论】:
标签: node.js api azure versioning