我正在开发一个带有spring 3和hibernate 4的RESTfull服务器。
我需要实现“扩展”机制,以支持对用户资源的GET请求。
目前,当您为用户执行GET请求时,您将获得以下JSON(通过Jackson映射):
{
href: "http://...."
name: "John doe"
age: "30"
userData1 : {
href: "http://...."
field1: "bla bla"
field2: "bla bla"
userData2 : {
href: "http://...."
field3: "bla bla"
field4: "bla bla"
userData3 : {
href: "http://...."
field5: "bla bla"
field6: "bla bla"
userData4: { //and so on with a real deep hierarchy
userData5 : {
href: "http://...."
field7: "bla bla"
field8: "bla bla"
userData6: { //and so on with a real deep hierarchy
}} ...}
你可以看到这就像expand = ALL结果。它拥有大多数用例不需要的大量信息。
是否有任何通用库可以支持“扩展”机制? 我希望我的客户能够做GET user + expand =“userdata1.userdata2 ..等。 并且只获取相关数据而不是全部数据。
上面这个例子并没有真正反映我服务器的状态,我有大量具有不同数字的复杂对象(即userData3可以包含5个复杂数据:UserData4,UserData5,UserData6等。
我相信在没有任何通用解决方案的情况下实施相当容易,它将耗费大量时间,而且我没有它的奢侈品。
有关创建像这样的通用机制的想法吗?也许需要使用java.reflection?我真的不想在我的代码\硬编码的东西中有很多if-else 任何想法都会有所帮助!
谢谢!