如何版本化和组织路由器 restify

how to version and organize routers restify

我是 javascript 世界的新手,我正在尝试创建一个 'basic' RESTful 应用程序。到目前为止,我发现 restify 框架似乎是完成此任务的最佳框架之一,因为 Express 也更倾向于处理应用程序的视图端。

我现在面临的是..我怎样才能对我的 API 进行版本控制,同时在它们自己的文件中有不同的路由?

例如:

GET - app.com/v1/users
POST - app.com/v1/users
PUT - app.com/v1/users
DELETE - app.com/v1/users

GET - app.com/v2/users
POST - app.com/v2/users
PUT - app.com/v2/users
DELETE - app.com/v2/users

我猜想为了更好的组织,我应该有一个 v1 和 v2 用户路由器版本的路由文件。像这样:

routes/v1/users (will handle the four REST verbs for v1)

routes/v2/users (will handle the four REST verbs for v2)

这是一个好方法吗?我如何通过 restify 实现这一点?

我发现 restify-router 似乎可以解决该问题,但自 3 月以来它没有任何提交..

总而言之..

1- 我应该如何处理多个路由版本?

2- 是否可以在不同的 folders/files 中组织路线?

3- 如果无法实现。有没有其他更好的框架来完成这个?

Restify 有一个 nice convention for versioning your Routes

您可以要求客户端在请求的 Accept-Version header 中设置版本号,而不是使用路径来确定路由的版本。

我通常为每个资源创建一个文件,并从同一个文件中满足该资源的每个版本。 Restify 有一个很好的方法来定义带有版本号的路由,如下所示:

server.use(restify.authorizationParser())

server.get({path: users, version: 1.0.0}, function(req, res, next) {

  // handle version 1 get users request

  next()

})

server.get({path: users, version: 2.0.0}, function(req, res, next) {

  // handle version 2 get users request

  next()

})