Microsoft.AspNetCore.Mvc.Versioning 在node express框架下面的替代品?

以下这一段代码是.net core框架下API版本控制的方式,通过安装标题中的库,然后就可以标记任何的函数可以兼容不同的API版本。

我觉得这种管理方式实在是太优雅了,请问在node express框架下有替代品吗?或者可以手动通过实现这个库吗?

感谢大佬~

    [ApiVersion("1.0")]
    [ApiVersion("2.0")]
    [Route("api/v{version:apiVersion}/[controller]")]
    public class DefaultController : ControllerBase
    {
        string[] authors = new string[]
        { "Joydip Kanjilal", "Steve Smith", "Anand John" };
        [HttpGet]
        public IEnumerable<string> Get()
        {
            return authors;
        }
    }
阅读 1.2k
1 个回答

自定义一个中间件:

const express = require('express');
const app = express();

// 自定义中间件
function apiVersion(req, res, next) {
  const version = req.params.version;
  if (version) {
    req.apiVersion = version;
  }
  next();
}


app.use('/api/v:version([0-9]+)/', apiVersion);


function getAuthors(req, res) {
  const authors = ["Joydip Kanjilal", "Steve Smith", "Anand John"];
  res.json(authors);
}


app.get('/api/v:version([0-9]+)/authors', getAuthors);


app.listen(3000, () => {
  console.log('Server running on port 3000');
});
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏