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