我正在寻找很好的工具来支持更改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