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
  • notModifiedjavax.ws.rs.core.Entitytag
  • notModifiedjava.lang.Stringtag
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 のステータスでレスポンスを作成します。
  • 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();

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.