如何像 /api/v1 那样在 sails.js 中命名我的 api?

How do I namespace my api in sails.js like so /api/v1?

我想将我的 api 请求命名空间命名为 /api/v1/ 也许以后一些也命名为 api/v2/。我怎样才能在 sails.js 中有效地做到这一点?

可以通过三种方式实现。

第一名:蓝图

http://sailsjs.org/#!/documentation/reference/sails.config/sails.config.blueprints.html how to create a global route prefix in sails?

prefix: '/api'

restPrefix: '/api'

how to create a global route prefix in sails?

第二:在每个控制器中添加

_config: { prefix: '/api/v2' }

第三:在路由中配置

http://sailsjs.org/#!/documentation/concepts/Routes

'/api/v2/': 'FooController',

虽然其他框架允许您嵌套块或闭包,但您不能在 Sails 中这样做。我的方法是使用一个保存前缀的变量并将它(在评估字符串之后)应用于每个路由对象键,如下所示:

const prefix = '/my/api/v2';

module.exports = {
  [`GET ${prefix}/where/ever/you/want`]: { ... },

  [`POST ${prefix}/some/where/nice`]: { ... },
}

上面使用字符串插值ES6。如果没有,只需使用字符串 concatenation: ['GET ' + prefix + '/where/ever']: { ... }.