Menu Close
第48章 情報のコンシューマーへの返信
概要
RESTful リクエストでは、少なくとも HTTP 応答コードがコンシューマーに返される必要があります。多くの場合、プレーンな JAXB オブジェクトまたは GenericEntity
オブジェクトを返すことで要求を満たすことができます。リソースメソッドが応答エンティティーと共に追加のメタデータを返す必要がある場合、JAX-RS リソースメソッドは必要な HTTP ヘッダーまたは他のメタデータを含む Response
オブジェクトを返すことができます。
48.1. 戻り値の型
コンシューマーに返される情報は、リソースメソッドが返すオブジェクトの正確な型を決定します。これは明らかなように思えるかもしれませんが、Java の戻りオブジェクトとRESTful コンシューマに返されるものとの間のマッピングは、一対一ではありません。最低でも RESTful コンシューマーは、レスポンスエンティティーボディーに加えて有効な HTTP 戻りコードを返す必要があります。Java オブジェクト内に含まれるデータの応答エンティティーへのマッピングは、コンシューマーが受け入れられる MIME タイプによって影響されます。
Java オブジェクトから RESTful 応答メッセージへのマッピングに関連する問題に対応するために、リソースメソッドは 4 種類の Java コンストラクトを返すことができます。
- 「プレーンな Java コンストラクトの返信」 は JAX-RS ランタイムによって決定される HTTP 戻りコードの基本情報を返します。
- 「プレーンな Java コンストラクトの返信」 は JAX-RS ランタイムによって決定される HTTP 戻りコードの複合情報を返します。
-
「アプリケーションの応答の調整」 はプログラムによって決定された HTTP のリターンステータスを持つ複合情報を返します。
Response
オブジェクトにより、HTTP ヘッダーを指定することも可能です。 -
「汎用型情報のあるエンティティーを返す」 は JAX-RS ランタイムによって決定された HTTP 戻りコードのある複合情報を返します。
GenericEnitity
オブジェクトは、データをシリアライズするランタイムコンポーネントに詳細情報を提供します。