0

Jersey (Jackson POJO マッピング) を使用して RESTful サービスを構築していますが、疑問があります... ドメイン内にGroupQuestion POJO があるフォーラムのようなアプリケーションを想像してみてください。

Group.java

class Group{
    int id;
    String name;
 //setter/getters
}

Question.java

class Question{
    int id;
    String title;
    String text;
  //setter/getters

} 

ご覧のとおり、これら 2 つのクラスの間に定義された関係はありません。私が言おうとしていること グループには

private Question[] questions;

GET /rest/groups を呼び出すと、完全な JSON が得られます。

{
   [
     {"id":1, "name":"Group name..." },
     {"id":2, "name":"Group name..." }

   ]
}

GET /rest/groups/12 を要求したときに取得しようとしているのは次のとおりです。

 {
   "group":{
       "id":12,
       "name":"Group 12"

    },
    "questions":[
           {"id":102, "title":"question title..." },
           {"id":201, "title":"question title..." }   
     ]

}

Group クラスでメンバー変数を定義することで、同様の結果を得ることができました。

 private Question[] questions;

Hibernate を使用し、注釈を使用して関係を定義するため、HAS-A 依存関係からドメイン クラスをきれいに保とうとしています。問題は、別のリソースと HAS-A 関係を持つリソースに対して返したい JSON をフォーマットする最善かつ最も柔軟な方法は何かということです...

4

1 に答える 1

0

GroupResponseオブジェクトのようなものを作成する必要があります。

class GroupRespose {
  final Group question;
  final List<Question> questions;
}

そして、これを応答オブジェクトとして使用します。これにより、必要な形式が得られます(ただし、質問を考えるfinal Group groupと、本当に必要だったと思いますが、質問のタイプミスでした)。

于 2013-02-20T20:25:26.123 に答える