2

我正在使用 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.. etc. 并且只获取相关数据而不是全部。

上面的这个例子并没有真正反映我服务器的状态,我有大量不同数量的复杂对象(即 userData3 可以包含 5 个复杂数据:UserData4、UserData5、UserData6 等。

我相信在没有任何通用解决方案的情况下实施是相当容易的,它会耗费大量时间,而且我没有奢侈品..

关于创建这样的通用机制的任何想法?也许需要使用 java.reflection ?我真的不希望我的代码中有很多 if-else \ 硬编码的东西,任何想法都会有所帮助!

谢谢!

4

0 回答 0