代码之家  ›  专栏  ›  技术社区  ›  Marcos

如何重新定义路由器的版本和组织

  •  1
  • Marcos  · 技术社区  · 7 年前

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

    例如:

    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-router

    总之。。

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

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

    1 回复  |  直到 7 年前
        1
  •  4
  •   Jonathan Goodman    5 年前

    Restify有一个 nice convention for versioning your Routes

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

    我通常为每个资源创建一个文件,并从同一个文件中为该资源的每个版本提供服务。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()
    
    })