使用查询参数的 Express API 版本控制

Posted

技术标签:

【中文标题】使用查询参数的 Express API 版本控制【英文标题】:Express API Versioning with query params 【发布时间】:2017-11-20 16:40:58 【问题描述】:

我是 NodeJS 初学者,我正在使用 Express 开发 API 后端。

我已经阅读了很多关于如何使用 Express 进行 API 版本控制的文章,但没有一篇文章解释了如何使用查询参数方法。

我喜欢像这样进行 API 版本控制:

example.org/users?version=1.0

example.org/users?version=1.1

example.org/users?version=1.2

等等。如何正确处理和构建我的 API 代码以实现此目的?

【问题讨论】:

【参考方案1】:

你可以做这样的事情(这只是一个例子,你可以用很多方式玩它)

index.js:

var express= require('express')
, app = express()
, usersHandlers = require('./handlers/users');

app.use("/users",usersHandler);

function usersHandler(req,res)
    var version = req.query.version;
    console.log("This code is relevent for all versions");
    usersHandlers[version](req,res);


app.listen(8000,function()
    console.log('Server running at http://127.0.0.1:8000/');
);

users.js:

module.exports = 
    '1.0' : function(req,res)
        res.send("This is the response for version 1.0");
    ,
    '2.0' : function(req,res)
        res.send("This is the response for version 2.0");
    

【讨论】:

以上是关于使用查询参数的 Express API 版本控制的主要内容,如果未能解决你的问题,请参考以下文章

express 无法从 url 获取查询参数 [重复]

基于 GET 参数的 Express/Mongoose REST API 路由

如何在 Node/Express 应用程序中处理 api 版本

C++ Express 版缺少哪些 Visual Studio 2008 生产力功能?

在 express api 中处理查询字符串的最佳方法是啥?

Nodejs,Express,路线