我开始使用Vercel部署的nextjs构建一个API。安装非常简单,只需在pages/api/
下创建文件。例如,创建端点/shows
,/movies
,/sports
我有:
./pages/api/
/shows
/movies
/sports
字符串
这很好,但我想像这样对API进行版本化:/v1/shows/
、/v1/movies
等
如果我能基于git commit tag的版本就更好了。也就是说,当我合并到main
分支时,Vercel要么部署到当前的生产环境(例如:v1 env),或者如果有一个新的git标签,它会部署到一个新的生产环境(例如在部署之后,两个生产环境将是活动的(v1和v2),因此旧的客户端将不会中断。
有办法和维塞尔一起做吗还是我遗漏了一个更简单的方法?其他人如何使用nextjs处理API版本控制?我很乐意接受意见!
2条答案
按热度按时间z31licg01#
如果您希望使用相同的端点并基于v1/v2提供不同的响应,则可以将rewrites添加到
next.config.js
文件中。字符串
然后当您访问
/v/1/shows
时,它将与访问/api/shows?version=1
相同。这意味着您可以在API中检查
req.query.version
以确定适当的响应。jhkqcmku2#
您可以为不同的端点创建单独的API版本,如/api/v1和/api/v2。
字符串
并确定您应该将版本号返回给客户端
的数据
在客户端,API应该像这样调用
型