我目前正在为包含以下部分的软件系统开发最后一批更改(希望如此):
我想知道版本#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
文件夹的后代,它似乎并不重要。我想避免这样的事情:
ReallyCoolMethod.js
ReallyCoolMethod_v2.js
但那是最好的方法吗?有没有办法做到以下几点?
- root
|-- api
|-- v1
| |-- ReallyCoolMethod.js
|
|-- v2
|-- ReallyCoolMethod.js
如果是,我如何将来自InvokeAPI
的呼叫路由到正确的版本?
注意: 我不询问Azure移动服务和Azure移动应用之间的区别。我知道那里涉及一些版本问题,但这与我的问题无关。我的问题是关于单个Azure移动应用程序以及该单个应用程序容器中不同版本的 my API。
答案 0 :(得分:0)
REST API的常见做法是在URI中包含该版本,例如https://host/api/v1.0/users/123。也许你可以遵循同样的惯例?您的后端将根据uri路由到正确的代码版本。