首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >版本化(Node.js)

版本化(Node.js)
EN

Stack Overflow用户
提问于 2017-05-19 12:36:24
回答 1查看 89关注 0票数 1

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

  1. Azure SQL Server数据库后端。
  2. 中间件。
  3. iOS/Android客户端

我想知道第2版的最佳方式是什么,这样我就可以让它的API与#3保持同步,也就是说,我希望iOS客户端的v1.0只能调用Azure的v1.0。当我升级到Azure API的v2.0 (试图保留相同的API方法名)时,我希望iOS客户端的v1.0仍然访问iOS客户端的APIv1.0和v2.0以访问APIv2.0。

从逻辑上讲,似乎可以将v1.0复制到新的v2.0MobileApp中。这样做的优点是保持所有内容都是独立的,并且不需要更改API方法名,这只是Azure SDK客户端的基本URL。但这显然是站不住脚的,特别是当你需要服务一个高客户负载。这可能会导致一些相当高的指控。

我已经将我的API文件子文件夹,这似乎对我需要调用它们的方式没有任何影响。如果我有一个ReallyCoolMethod.js文件,那么它在哪里似乎并不重要,只要它是根目录中api文件夹的后代。我想避免发生这样的事情:

  • v1.0:ReallyCoolMethod.js
  • v2.0:ReallyCoolMethod_v2.js

但这是最好的办法吗?有办法做下面的事吗?

代码语言:javascript
复制
- root
   |-- api
        |-- v1
        |    |-- ReallyCoolMethod.js
        |    
        |-- v2
             |-- ReallyCoolMethod.js

如果是这样,我如何将调用从InvokeAPI路由到正确的版本?

注意:,我是,而不是,询问Azure移动服务和Azure移动应用程序之间的区别。我知道这里涉及到一些版本控制问题,但这与我的问题无关。我的问题是关于一个单一的Azure和在这个应用程序容器中的不同版本的,我的 API。

EN

回答 1

Stack Overflow用户

发布于 2017-05-19 21:11:21

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44070314

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档