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 メソッドを実装することを指定します。