clu*_*clu 1 api-versioning next.js vercel
我开始使用 nextjs 和 Vercel 部署构建一个 API。设置非常简单,只需在pages/api/. 例如创建端点/shows,/movies我/sports有:
./pages/api/
/shows
/movies
/sports
Run Code Online (Sandbox Code Playgroud)
这很好,但我想像这样对 API 进行版本控制:/v1/shows/、/v1/movies等等。
如果我可以基于 git commit 标签进行版本控制就更好了。也就是说,当我合并到main分支时,Vercel 要么部署到当前的生产环境(例如 v1 env),或者如果有新的 git 标签,它就会部署到新的生产环境(例如 v2 env)。部署后,两个生产环境将上线(v1 和 v2),因此旧客户端不会中断。
有没有办法用 Vercel 做到这一点?或者我缺少更简单的方法吗?其他人如何使用 nextjs 处理 API 版本控制?我对想法持开放态度!
如果您想使用相同的端点并根据 v1/v2 提供不同的响应,您可以向文件添加重写next.config.js。
module.exports = {
async rewrites() {
return [
{
source: '/v/:version/:rest*',
destination: '/api/:rest*?version=:version',
}
]
}
}
Run Code Online (Sandbox Code Playgroud)
那么当你去参观的时候/v/1/shows,就和参观一样了/api/shows?version=1。
这意味着您可以检查req.query.versionAPI 以确定适当的响应。
| 归档时间: |
|
| 查看次数: |
1840 次 |
| 最近记录: |