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 応答での応答の作成
要求元がエンティティーボディーを期待しない場合は、200 OK のステータスではなく 204 No Content ステータスを送信する方が適切な場合があります。Response.noContent() メソッドにより、適切な応答オブジェクトが作成されます。
204 ステータスでの応答の作成 は、204 ステータスで応答を作成する例を示しています。
204 ステータスでの応答の作成
import javax.ws.rs.core.Response; return Response.noContent().build();
import javax.ws.rs.core.Response;
return Response.noContent().build();
リダイレクトの応答の作成 リンクのコピーリンクがクリップボードにコピーされました!
Response クラスは、3 つのリダイレクト応答ステータスを処理するメソッドを提供します。
303 See Other303 See Otherステータスは、リクエストされたリソースが要求を処理するためにコンシューマーを新しいリソースに永続的にリダイレクトする必要がある場合に便利です。ResponseクラスのseeOther()メソッドは、303のステータスで応答を作成し、新しいリソース URI をメッセージのLocationフィールドに配置します。seeOther()メソッドは、新しい URI をjava.net.URIオブジェクトとして指定する単一のパラメーターを取ります。304 Not Modified304 Not Modifiedステータスは、リクエストの性質に応じてさまざまなものに使用できます。前回のGETリクエスト以降、要求されたリソースが変更されていないことを示すことができます。リソース変更要求で、リソースが変更されなかったと示すために使用することもできます。ResponseクラスのnotModified()メソッドは304ステータスで応答を作成し、HTTP メッセージに変更された日付プロパティーを設定します。notModified()メソッドには 3 つのバージョンがあります。-
notModified -
notModifiedjavax.ws.rs.core.Entitytag -
notModifiedjava.lang.Stringtag
-
307 Temporary Redirect307 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();
import javax.ws.rs.core.Response;
return Response.notModified().build();
エラーを示す応答の作成 リンクのコピーリンクがクリップボードにコピーされました!
Response クラスは、2 つの基本的な処理エラーに対する応答を作成するメソッドを提供します。
-
serverError-500 Internal Server Errorのステータスでレスポンスを作成します。 -
notAcceptablejava.util.List<javax.ws.rs.core.Variant>variants-406 Not Acceptableステータスと、許容可能なリソース型の一覧が含まれるエンティティーボディーでレスポンスを作成します。
500 ステータスでの応答の作成 は、500 ステータスで応答を作成する例を示しています。
500 ステータスでの応答の作成
import javax.ws.rs.core.Response; return Response.serverError().build();
import javax.ws.rs.core.Response;
return Response.serverError().build();