gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 09:33:22 24 4
gpt4 key购买 nike

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

我现在面临的是..我怎样才能对我的 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- 是否可以在不同的文件夹/文件中组织路由?

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 - 如何版本化和组织路由器 restify,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45003237/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com