JAX-RS を使用して RESTful インターフェイスを作成しています。現在、システムで利用可能なオブジェクトを確認するためのインデックス リソースを作成しています。
私の問題は、ユーザーが問題の実際のオブジェクトを選択するまで、映画オブジェクトの完全な表現を返すことは高価で不要であることです。
私の質問:
JSONシリアル化プロセスを制御して、このオブジェクトの「短い」バージョンと長いバージョンを提供する方法はありますか?または、短い形式を表すビューモデル風のクラスを作成する方がよいでしょうか?
私の問題の実例として映画データベースを使用する:
@GET
@Path("/api/movie/")
@Produces(MediaType.APPLICATION_JSON)
public List<Movie> ListMovies() {
return entityManager.createQuery("FROM Movie", Movie.class).getResultList();
}
@GET
@Path("/api/movie/{movieId}")
@Produces(MediaType.APPLICATION_JSON)
public Movie GetMovie( @PathParam("movieId") Integer movieId ) {
return entityManager.find(Movie.class,movieId);
}
最初のルートでは、 、、およびプロパティ/api/movie
のみを含む短い形式のオブジェクトを返したいと考えていますが、2 番目のルートでは完全なオブジェクトが返されます。ID
Title
YearProduced
これは簡単に解決できると思いますが、私は商売として Java の専門家ではないので、それを支援する注釈や何らかのヘルパーがあることを望んでいました。
編集:ない場合、最も簡単な方法は、要約クラス (ie: MovieSummary
) を作成し、代わりにそれを返すことだと思います。