第46章 リソースの作成
概要
RESTful Web サービスでは、すべての要求はリソースによって処理されます。JAX-RS API は、リソースを Java クラスとして実装します。リソースクラスは、Java クラスで、1 つ以上の JAX-RS アノテーションが付けられます。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
メソッドを実装することを指定します。