如何优雅实现restful接口的版本控制

网上看到目前rest api的版本控制主要有两种方式:1. url参数 2. 放入head中,那么对于这两种方式后端(spring框架)如何能优雅的实现? 难道就是每增一个版本就多写一个对应mapping的方法甚至controller,感觉这样代码会很冗余。

阅读 8.9k
1 个回答

twitter
https://stream.twitter.com/1.1/statuses/sample.json

google
https://accounts.google.com/o/oauth2/v2/auth

facebook
https://graph.facebook.com/v2.8/oauth/access_token

在URL中添加版本参数,twitter/google/facebook...都是这样来做的。这不够优雅吗?
增加版本号就是为了接口能自然过度升级,这必然是需要冗余历史版本的代码。不过做法也有很多种。如果你是在一个应用中实现多版本的支持,那可以直接通过DispatchServlet来做servlet-mapping中即可增加版本号path
你也可以在后端部署多套不同版本的应用,根据请求地址将接口转发至不同版本的应用处理。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题