如何版本化和组织路由器 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()
})
我是 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()
})