24.3.2 ビルトイン要求メソッド識別子
(1) javax.ws.rs.DELETEアノテーション
javax.ws.rs.DELETEアノテーションは,アノテートされたメソッドがHTTP DELETEリクエストを処理することを指定します。javax.ws.rs.DELETEアノテーションが使用できる対象を次に示します。
- ルートリソースクラスのpublicメソッド
- サブリソースクラスのpublicメソッド
(2) javax.ws.rs.GETアノテーション
javax.ws.rs.GETアノテーションは,アノテートされたメソッドがHTTP GETリクエストを処理することを示します。javax.ws.rs.GETアノテーションが使用できる対象を次に示します。
- ルートリソースクラスのpublicメソッド
- サブリソースクラスのpublicメソッド
(3) javax.ws.rs.HEADアノテーション
javax.ws.rs.HEADアノテーションは,アノテートされたメソッドがHTTP HEADリクエストを処理することを示します。javax.ws.rs.HEADアノテーションが使用できる対象を次に示します。
- ルートリソースクラスのpublicメソッド
- サブリソースクラスのpublicメソッド
HTTP HEADリクエストを受けた場合,JAX-RSエンジンは次の優先順位で動作します。
- HEADアノテーションでアノテートされたメソッドがあれば呼び出す。
- HEADアノテーションでアノテートされたメソッドがなければ,GETアノテーションでアノテートされたメソッドを呼び出す。なお,そのメソッドが戻り値を返す場合は無視される。
HTTP HEADリクエストを処理するルートリソースクラスの例を次に示します。
package com.sample.resources;
import javax.ws.rs.HEAD;
import javax.ws.rs.Path;
import javax.ws.rs.core.Response;
//ルートリソースクラス
@Path("/root")
public class Resource {
//リソースメソッド
@HEAD
public Response getValue() {
String customHeader = "foo";
String customHeaderValue = "bar";
int httpStatus = 200;
//ResponseBuilderを使用してResponseオブジェクトを構築する
return Response.status(httpStatus).header(customHeader,
customHeaderValue).build();
}
} |
ルートリソースクラスcom.sample.resources.Resourceを含むWebアプリケーション(WARファイル)のコンテキストルートが"example"で,Webアプリケーションが"sample.com"というホストで公開されているとします。この例では,URL"http://sample.com/example/root"に対するHTTP HEADリクエストは,getValue()メソッドにディスパッチされます。getValue()メソッドが返すResponseオブジェクトがエンティティボディを含んでいても無視されます。
(4) javax.ws.rs.OPTIONSアノテーション
javax.ws.rs.OPTIONSアノテーションは,アノテートされたメソッドがHTTP OPTIONSリクエストを処理することを示します。javax.ws.rs.OPTIONSアノテーションが使用できる対象を次に示します。
- ルートリソースクラスのpublicメソッド
- サブリソースクラスのpublicメソッド
HTTP OPTIONSリクエストのためのJAX-RSエンジンの動作を次に示します。
- javax.ws.rs.OPTIONSアノテーションでアノテートされたメソッドを呼び出す。
- javax.ws.rs.OPTIONSアノテーションでアノテートされたメソッドがなければ,Webリソースのアノテーションの情報を使用して,JAX-RSエンジンが自動的に応答する。
HTTP OPTIONSリクエストを処理するルートリソースクラスの例を次に示します。
package com.sample.resources;
import javax.ws.rs.OPTIONS;
import javax.ws.rs.Path;
import javax.ws.rs.core.Response;
//ルートリソースクラス
@Path("/root")
public class Resource {
//リソースメソッド
@OPTIONS
public Response getValue() {
String entity = "Some Contents";
String customHeader = "foo";
String customHeaderValue = "bar";
int httpStatus = 200;
//ResponseBuilderを使用してResponseオブジェクトを構築する
return Response.status(httpStatus).header(customHeader,
customHeaderValue).entity(entity).build();
}
} |
ルートリソースクラスcom.sample.resources.Resourceを含むWebアプリケーション(WARファイル)のコンテキストルートが"example"で,Webアプリケーションが"sample.com"というホストで公開されているとします。この例では,URL"http://sample.com/example/root"に対するHTTP OPTIONSリクエストは,getValue()メソッドにディスパッチされます。
(5) javax.ws.rs.POSTアノテーション
javax.ws.rs.POSTアノテーションは,アノテートされたメソッドがHTTP POSTリクエストを処理することを示します。javax.ws.rs.POSTアノテーションが使用できる対象を次に示します。
- ルートリソースクラスのpublicメソッド
- サブリソースクラスのpublicメソッド
(6) javax.ws.rs.PUTアノテーション
javax.ws.rs.PUTアノテーションは,アノテートされたメソッドがHTTP PUTリクエストを処理することを示します。javax.ws.rs.PUTアノテーションが使用できる対象を次に示します。
- ルートリソースクラスのpublicメソッド
- サブリソースクラスのpublicメソッド