Menu Close
第46章 リソースの作成
概要
RESTful Web サービスでは、すべての要求はリソースにより処理されます。JAX-RS API はリソースを Java クラスとして実装します。リソースクラスは、1 つ以上の JAX-RS アノテーションが付けられた Java クラスです。JAX-RS を使用して実装された RESTful Web サービスの中核はルートリソースクラスです。ルートリソースクラスは、サービスによって公開されるリソースツリーのエントリーポイントです。すべてのリクエスト自体を処理することも、リクエストを処理するサブリソースへのアクセスを提供することもできます。
46.1. はじめに
概要
JAX-RS API を使用して実装された RESTful Web サービスは、Java クラスによって実装されたリソースの表現として応答を提供します。リソースクラス は、JAX-RS アノテーションを使用してリソースを実装するクラスです。ほとんどの RESTful Web サービスでは、アクセスする必要のあるリソースのコレクションがあります。リソースクラスのアノテーションは、リソースの URI、各操作が処理する HTTP 動詞などの情報を提供します。
リソースの種類
JAX-RS API では、次の 2 つの基本タイプのリソースを作成できます。
-
「ルートリソースクラス」 は、サービスのリソースツリーへのエントリーポイントです。
@Path
アノテーションが付けられ、サービスのリソースのベース URI を定義します。 -
「サブリソースの使用」 はルートリソースを介してアクセスされます。これらは、
@Path
アノテーションが付けられたメソッドによって実装されます。サブリソースの@Path
アノテーションは、ルートリソースのベース URI に対する相対的な URI を定義します。
例
例46.1「単純なリソースクラス」 に、単純なリソースクラスを示します。
例46.1 単純なリソースクラス
package demo.jaxrs.server; import javax.ws.rs.GET; import javax.ws.rs.Path; import javax.ws.rs.PathParam; @Path("/customerservice") public class CustomerService { public CustomerService() { } @GET public Customer getCustomer(@QueryParam("id") String id) { ... } ... }
以下の 2 つの項目によって、例46.1「単純なリソースクラス」 に定義されたクラスはリソースクラスになります。
@Path
アノテーションは、リソースのベース URI を指定します。
@GET
アノテーションは、メソッドがリソースの HTTP GET
メソッドを実装することを指定します。