Spring REST架构 - “扩展”实现

时间:2013-05-29 11:14:12

标签: json spring rest expand

我正在开发一个带有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 任何想法都会有所帮助!

谢谢!

0 个答案:

没有答案