複数パーツ・メッセージを使用したリソースの実装
複数パーツ・メッセージには、その構造に 1 つ以上の他のメッセージが含まれます。メッセージの各部分に、それぞれ独自のコンテンツ・タイプを含めることができます。 IBM® Java™ API for RESTful Web Services (JAX-RS) を使用すると、複数パーツ・メッセージを作成および取り込むことができます。
このタスクについて
IBM JAX-RS は、複数パーツ要求および複数パーツ応答をモデル化する Apache Wink のクラスを提供します。さらに IBM JAX-RS には、複数パーツ・メッセージをサポートするエンティティー・プロバイダーがデフォルトで含まれます。 これらのエンティティー・プロバイダーは、メッセージ・コンテンツ・タイプに multipart/* との互換性があれば、複数パーツ・クラス・インスタンスをシリアライズおよびデシリアライズすることができます。
Apache Wink API を使用して複数パーツ・メッセージを処理するには、定義クラスを使用して、複数パーツ・メッセージのメッセージ本体エンティティーを表示する必要があります。
org.apache.wink.common.model.multipart.InMultiPart
org.apache.wink.common.model.multipart.BufferedInMultiPart
着信した複数パーツ要求のクラス・タイプの 1 つを、リソース・メソッドのメソッド・パラメーターとして使用します。InMultiPart クラスによって要求メッセージがストリームされる一方で、BufferedInMultiPart クラスによってメッセージ全体がメモリーに保管されます。メッセージをストリーミングすると消費メモリーが減りますが、メッセージ部分にアクセスできるのは、1 回の反復操作につき 1 回のみです。対照的に、バッファリングを使用すると、メッセージのいずれの部分でも常時読み取ることができます。
org.apache.wink.common.model.multipart.OutMultiPart
org.apache.wink.common.model.multipart.BufferedOutMultiPart
アウトバウンドの複数パーツ応答タイプの 1 つのインスタンスをリソース・メソッドに戻すことができます。OutMultiPart クラスによって複数パーツ応答メッセージがストリームされる一方で、BufferedOutMultiPart クラスによってメッセージ全体がメモリーに保管されます。
これらの複数パーツのインバウンド・クラスとアウトバウンド・クラスでは、JAX-RS エンティティー・プロバイダーを使用することで、複数パーツ・メッセージの個別部分がシリアライズまたはデシリアライズされます。
複数パーツ・メッセージ・クラスについて詳しくは、Apache Wink API 文書を参照してください。
手順
タスクの結果
複数のコンテンツ・タイプを含む複数パーツ・メッセージを送受信できます。