2

spring 3 と hibernate 4 を使用して RESTfull サーバーを開発しています。

ユーザー リソースの GET 要求をサポートするために、「拡張」メカニズムを実装する必要があります。

現在、ユーザーに対して GET リクエストを実行すると、(Jackson マッピングを介して) 次の JSON が取得されます。

{
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 には、UserData4、UserData5、UserData6 などの 5 つの複雑なデータを含めることができます。

一般的な解決策がなくても、実装はかなり簡単だと思います。それには多くの時間がかかり、贅沢をする余裕はありません..

このような一般的なメカニズムを作成するためのアイデアはありますか? おそらく java.reflection の使用が必要ですか? コードに if-else をたくさん入れたくない \ ハードコードされたものはどんなアイデアでも役に立ちます!

ありがとう!

4

0 に答える 0