Menu Close
48.3.2. 一般的なユースケースに対するレスポンスの作成
概要
Response
クラスは、RESTful サービスが必要とするより一般的な応答を処理するためのショートカットメソッドを提供します。これらのメソッドは、提供される値またはデフォルト値を使用して適切なヘッダーを設定します。また、必要に応じて、エンティティーボディーの入力も処理します。
正常リクエストに対するレスポンスの作成
リクエストが正常に処理されると、アプリケーションはリクエストが満たされたことを確認するためにレスポンスを送信する必要があります。この応答にはエンティティーが含まれることがあります。
応答を正常に完了した場合の最も一般的な応答は OK
です。OK
応答には通常、リクエストに対応するエンティティーが含まれます。Response
クラスには、応答のステータスを 200
に設定し、指定されたエンティティーを囲まれた応答ビルダーに追加するオーバーロードされた ok()
メソッドがあります。ok()
メソッドには 5 つのバージョンがあります。最も一般的に使用されるバリアントは次のとおりです。
-
Response.ok()
-200
のステータスおよび空のエンティティーボディーでレスポンスを作成します。 -
Response.ok(java.lang.Object entity)
-200
のステータスで応答を作成し、指定されたオブジェクトを応答エンティティーボディーに保存します。また、オブジェクトのイントロスペクションによるエンティティーメディア型を決定します。
200
応答での応答の作成 は、OK
ステータスで応答を作成する例を示しています。
200
応答での応答の作成
import javax.ws.rs.core.Response; import demo.jaxrs.server.Customer; ... Customer customer = new Customer("Jane", 12); return Response.ok(customer).build();
要求元がエンティティーボディーを期待しない場合は、200 OK
のステータスではなく 204 No Content
ステータスを送信する方が適切な場合があります。Response.noContent()
メソッドにより、適切な応答オブジェクトが作成されます。
204
ステータスでの応答の作成 は、204
ステータスで応答を作成する例を示しています。
204
ステータスでの応答の作成
import javax.ws.rs.core.Response; return Response.noContent().build();
リダイレクトの応答の作成
Response
クラスは、3 つのリダイレクト応答ステータスを処理するメソッドを提供します。
303 See Other
303 See Other
ステータスは、リクエストされたリソースが要求を処理するためにコンシューマを新しいリソースに永続的にリダイレクトする必要がある場合に便利です。Response
クラスのseeOther()
メソッドは、303
のステータスで応答を作成し、新しいリソース URI をメッセージのLocation
フィールドに配置します。seeOther()
メソッドは、新しい URI をjava.net.URI
オブジェクトとして指定する単一のパラメーターを取ります。304 Not Modified
304 Not Modified
ステータスは、リクエストの性質に応じてさまざまなものに使用できます。前回のGET
リクエスト以降、要求されたリソースが変更されていないことを示すことができます。また、リソースの変更要求によってリソースが変更されなかったことを示す場合にも使用できます。Response
クラスのnotModified()
メソッドは304
ステータスで応答を作成し、HTTP メッセージに変更された日付プロパティーを設定します。notModified()
メソッドには 3 つのバージョンがあります。-
notModified
-
notModified
javax.ws.rs.core.Entity
tag
-
notModified
java.lang.String
tag
-
307 Temporary Redirect
307 Temporary Redirect
ステータスは、要求されたリソースがコンシューマーを新しいリソースに転送する必要があるものの、このリソースを引き続き使用して今後の要求を処理する場合に役立ちます。Response
クラスのtemporaryRedirect()
メソッドは、307
のステータスで応答を作成し、新しいリソース URI をメッセージのLocation
フィールドに配置します。temporaryRedirect()
メソッドは、新しい URI をjava.net.URI
オブジェクトとして指定する単一のパラメーターを取ります。
304
ステータスでの応答の作成 は、304
ステータスで応答を作成する例を示しています。
304
ステータスでの応答の作成
import javax.ws.rs.core.Response; return Response.notModified().build();
シグナルエラーへの応答の作成
Response
クラスは、2 つの基本的な処理エラーに対する応答を作成するメソッドを提供します。
-
serverError
-500 Internal Server Error
のステータスでレスポンスを作成します。 -
notAcceptable
java.util.List<javax.ws.rs.core.Variant>
variants
-406 Not Acceptable
ステータスと、許容可能なリソース型の一覧が含まれるエンティティーボディーでレスポンスを作成します。
500
ステータスでの応答の作成 は、500
ステータスで応答を作成する例を示しています。
500
ステータスでの応答の作成
import javax.ws.rs.core.Response; return Response.serverError().build();