我正在尋找很好的工具來支持更改REST服務中使用的模型版本的支持。我的夢想工具會做這樣的事情:可用適用於Java的REST模型版本控制的好工具
- 我的POJO + 1.0版的config /變壓器=>服務與我的模型的1.0
- 我的POJO + 1.1版的config /變壓器=>可提供的1.1服務我模型
在我的具體情況我並不需要做逆轉變爲我的REST服務將只提供數據的查找,永不儲存的東西,但我不介意使用的工具都:-)
做我正在考慮的解決方案是添加c在我的pojo(版本+名稱)中創建ustom註釋,並創建一個代碼生成器,根據版本號根據我的pojo生成JSON/XML。儘管在這裏我感覺我正在重新發明輪子。
編輯: 這裏是一個變化的一個例子,可以從版本1進行到版本1.1:
版本1: 人 姓名 姓氏
版本1.1 人 姓名 姓氏 出生日期
如果您使用版本1.0訪問API,則不會獲得birthdate屬性 - 它是僅在版本1.1中可用。我希望工具支持使這些服務可用,在那裏我可以配置,授予我的pojo(目前像1.1版本),我想提供一個不顯示這些值的1.0版本。
模型的其他合法更改可能是刪除屬性或重命名屬性(或甚至重命名實體)。
編輯2: 數字Joel在評論中提到,有關版本化API的討論,您應該閱讀https://stackoverflow.com/posts/9789756/。
版本控制的簡單方法當然不是向後突破API更改,而是更改業務,所以這並非總是可行。我的興趣在於如何使這些變化更容易處理,因此我的問題。
編輯3: 我在尋找可能有助於這個過程的工具,但仍然沒有什麼能夠很好地將它與休息連接起來。下面是我迄今發現的鏈接:
- http://wiki.pmease.com/display/xmt/What%27s+XMT(貌似與序列化的POJO幫助帶版本到XML庫)
優秀的迴應。 gson庫看起來很不錯。 – Knubo 2012-03-27 23:39:43
不錯的一個!我不知道gson有版本控制支持。你應得的賞金。 – digitaljoel 2012-03-28 17:21:15
當時間用完時,我肯定會掏出賞金,沒有人會擊敗他的回答:-) – Knubo 2012-03-28 19:24:51