Loopbackjs strong循环/环回-维护API的多个版本

Loopbackjs strong循环/环回-维护API的多个版本,loopbackjs,strongloop,Loopbackjs,Strongloop,我第一次使用strongloop/loopback。有一些关于API版本控制的基本说明: var p = require('../package.json'); var version = p.version.split('.').shift(); module.exports = { restApiRoot: '/api' + (version > 0 ? '/v' + version : ''), host: process.env.HOST || 'localhost',

我第一次使用strongloop/loopback。有一些关于API版本控制的基本说明:

var p = require('../package.json');
var version = p.version.split('.').shift();
module.exports = {
  restApiRoot: '/api' + (version > 0 ? '/v' + version : ''),
  host: process.env.HOST || 'localhost',
  port: process.env.PORT || 3000
};
我没有看到的是一种维护API多个版本的推荐方法。例如,我可以同时运行旧版1.4和新版2.0。是否有这样做的最佳实践


编辑:我接受@Overdrivr的答案,因为它在撰写本文时是准确的。但是,对于计划提交PR的用户来说,这项功能存在问题。希望在未来的迭代中添加此功能。

您需要运行两个环回服务器,一个运行1.4,另一个运行2.0。例如,让一个监听端口3000,另一个监听端口3001

然后您可以使用nginx作为反向代理

nginx将侦听端口80或443(http或https),即您的客户端将访问的端口。
最后,告诉nginx将匹配
/api/v1.4/
的请求重新路由到服务器1.4,并将
/api/v2/
路由到另一个服务器。

希望,当维护多个api版本变得更容易时,您能提供更多细节吗?(对不起,这是第一次这么做)这里使用哪个NGinx版本?这两个版本如何在heroku安装上同时运行?我怀疑你能用heroku做到这一点,你需要像谷歌云或aws那样的路由功能。我自己也没有尝试过,所以我不能提供更多的信息,这是一个原则,一个简单的解决方案是在子域上托管这两个API
apiv1.yourapp.com
apiv2.yourapp.com
。在这种情况下,你可以将每个版本部署到一个不同的heroku项目,最终,我为这些版本使用了两个不同的heroku应用程序。我多么希望它在环回中更容易实现,并且每当我们开始在环回中编码时,总是必须从v1开始。谢谢你的帮助!