springMVC環境下給RESTFul API 添加版本控制之我見


  最近搞了一個基於SSM框架的項目,項目上線了,我也開始對框架進行一些改進工作,其中一項就是給springmvc框架下的RESTFul API添加版本控制,在這里記錄一下我的實現思路以及性能調優過程。

 

  我使用的是spring-3.2.16版本,也是spring3的最后一個版本。

  我想要達到的版本控制效果如下:

  1.api版本定義在url中,采用${base}/api/v4/..的形式。

  2.api版本號通過注解進行定義。

  3.如果請求中不指定api版本號則返回最新版本。

  4.版本的自動適配,如果請求的api版本不存在,則返回低於請求版本的最新版本

 

  用過spingMVC的朋友都知道,你在controller中定義的方法,想要對外發布成api,用@RequestMapping這個注解就可以了,springMVC在系統啟動時,掃描到注解后會將方法和我們定義的URI形成映射(見下圖),當外部請求來的時候,通過一系列規則的匹配、校驗,最終找到想要訪問的方法或者返回空結果(貌似是句廢話),這里為了實現上面的效果1,需要將版本信息發布到方法的URI上。

 

  springMVC的設計思想我比較了解,但是對於這個版本管理的需求一時不知道該從何下手,首先當然在網上搜一下已有的解決方案。然后還真的有相關的解決方案。

 

未完待續。

 

 

時隔4、5個月,思路已經忘卻,已將代碼開源至git.oschina。地址奉上:

http://git.oschina.net/hibug/SpringMVCZhiBanBenKongZhi

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM