17.1 リソースクラス

リソースクラスのリソースメソッド,サブリソースメソッド,およびサブリソースロケータの違い,ならびにルートリソースクラスとサブリソースクラスの違いについて説明します。

リソースクラスのリソースメソッド,サブリソースメソッド,およびサブリソースロケータは,Pathアノテーション,および要求メソッド識別子の有無によって定義されます。それぞれの定義を次に示します。

表17-1 リソースメソッド,サブリソースメソッド,およびサブリソースロケータの定義

項番メソッドまたはロケータPathアノテーション要求メソッド識別子
1リソースメソッド×
2サブリソースメソッド
3サブリソースロケータ×
(凡例)
○:使用できることを示します。
×:使用できないことを示します。

ルートリソースクラスのインスタンスは,JAX-RSエンジンによって生成されます。このとき,コンストラクタのパラメタ,フィールド,およびbeanプロパティにはJAX-RS仕様に従ってインジェクトされます。

一方,サブリソースクラスのインスタンスは,JAX-RSエンジンによって生成されません。サブリソースクラスは,対応するサブリソースロケータでインスタンス化する必要があります。このため,コンストラクタのパラメタ,フィールド,およびbeanプロパティの初期化は,サブリソースロケータ,またはサブリソースクラスで行う必要があります。

<この節の構成>
17.1.1 ルートリソースクラス
17.1.2 エンティティパラメタ
17.1.3 戻り値
17.1.4 パラメタ型
17.1.5 例外のマッピング
17.1.6 URIテンプレート
17.1.7 サブリソースクラス
17.1.8 例外ハンドリング
17.1.9 メディアタイプ宣言
17.1.10 URLデコードの無効化
17.1.11 アノテーションの継承