版本控制Azure移动应用API(Node.js)

时间:2017-05-19 12:36:25

标签: node.js api azure versioning

我目前正在为包含以下部分的软件系统开发最后一批更改(希望如此):

  1. Azure SQL Server数据库后端。
  2. Azure移动应用API中间件。
  3. iOS / Android客户端。
  4. 我想知道版本#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。

1 个答案:

答案 0 :(得分:0)

REST API的常见做法是在URI中包含该版本,例如https://host/api/v1.0/users/123。也许你可以遵循同样的惯例?您的后端将根据uri路由到正确的代码版本。