Cosminexus V9 BPM/ESB基盤 サービスプラットフォーム 解説

[目次][用語][索引][前へ][次へ]

2.13.10 HTTP受付のJSON-XML変換機能

HTTP受付のJSON-XML変換機能とは,HTTP受付でJSON形式の要求電文をXML形式に,またはXML形式の応答電文をJSON形式に変換する機能です。

<この項の構成>
(1) HTTP受付のJSON-XML変換機能の概要
(2) HTTP受付のリクエスト処理時のJSON-XML変換機能
(3) HTTP受付のレスポンス処理時のJSON-XML変換機能

(1) HTTP受付のJSON-XML変換機能の概要

RESTクライアントから送信されたJSON形式の要求電文を,HTTP受付でXML形式の要求電文に変換します。また,ビジネスプロセスから応答されたXML形式の応答電文をJSON形式に変換し,RESTクライアントへ応答します。HTTP受付のJSON-XML変換機能を使用したサービス部品呼び出し要求および応答の流れを次の図に示します。

図2-108 JSON-XML変換機能を使用したサービス部品呼び出し要求・応答の流れ(HTTP受付)

[図データ]

HTTP受付に設定する電文フォーマット(XMLスキーマ)は,JSON変換ツールで生成します。JSON変換ツールはJSON形式の電文のサンプルを受け取り,JSON-XML変換後のXML形式の電文に適合する電文フォーマットを生成します。JSON-XML変換機能を使用するHTTP受付の開発の流れを次の図に示します。

図2-109 JSON-XML変換機能を使用するHTTP受付の開発の流れ

[図データ]

HTTP受付の定義の詳細については,マニュアル「サービスプラットフォーム 開発ガイド 受付・アダプタ定義編」の「2.5 HTTP受付の定義」を,JSON変換ツールの詳細については,マニュアル「サービスプラットフォーム 開発ガイド 基本開発編」の「12. JSON変換ツールを使用したデータ変換」を参照してください。

(2) HTTP受付のリクエスト処理時のJSON-XML変換機能

HTTP受付のリクエスト処理時のJSON-XML変換のタイミングや設定について説明します。

(a) HTTP受付のリクエスト処理時のJSON-XML変換のタイミング

HTTP受付のリクエスト処理時の,JSON-XML変換のタイミングを次の図に示します。

図2-110 リクエスト処理時のJSON-XML変換のタイミング(HTTP受付)

[図データ]

図中の1.〜4.について説明します。

  1. HTTP受付がRESTクライアントから要求電文を受信します。
  2. コンポーネント共通UOCでは,RESTクライアントから送信されたJSON形式の要求電文を扱います。
  3. HTTP受付では,コンポーネント共通UOCの呼び出しとデータ変換の間でJSON-XML変換が実行されます。
  4. データ変換では,JSON-XML変換機能で変換されたXML形式の要求電文を扱います。
(b) HTTP受付のリクエスト処理時にJSON-XML変換をする場合の設定

HTTP受付定義ファイルのhttprecp.request.switchover.json-transfer.modeプロパティの値が「true」の場合,HTTP受付のリクエスト処理時にJSON-XML変換が実行されます。要求電文(ヘッダ)では,JSON-XML変換を実行するかどうかの切り替えはできません。プロパティの設定とJSON-XML変換の実行可否を次の表に示します。

表2-43 リクエスト処理時のJSON-XML変換の実行可否(HTTP受付)

HTTP受付定義ファイル
httprecp.request.switchover.json-transfer.modeプロパティ
JSON-XML変換の実行
−(プロパティを設定していない) 実行されない
false 実行されない
true 実行される
参考
パススルーモードで,HTTPリクエストボディにmsgキーを使用するかどうかの設定に関わらず,JSON-XML変換機能を使用できます。
(c) HTTP受付のHTTPリクエストヘッダに関連する処理

JSON-XML変換機能に関連しているHTTP受付のHTTPリクエストヘッダについて説明します。

HTTP受付のHTTPリクエストヘッダの処理の詳細については,「2.13.4 HTTP受付のリクエスト処理」を参照してください。

Content-Typeヘッダ
JSON-XML変換は,HTTPリクエストヘッダのContent-Typeヘッダの値に関わらず実行されます。また,Content-TypeヘッダがHTTPリクエストヘッダに設定されていない場合は,要求電文(ヘッダ)のcontent-type要素は生成されません。

Content-Typeヘッダのcharset属性
HTTPリクエストヘッダのContent-Typeヘッダにcharset属性が設定されていない場合は,要求電文(ヘッダ)のcharset属性にHTTP受付定義ファイルのhttprecp.http.charsetプロパティの値が設定されます。httprecp.http.charsetプロパティが設定されていないときは,要求電文(ヘッダ)のcharset属性に「UTF-8」が設定されます。

HTTPリクエストヘッダおよびHTTP受付定義ファイルのプロパティの設定と要求電文(ヘッダ)の関係を次の表に示します。

表2-44 要求電文(ヘッダ)のcharset属性の設定(HTTP受付)

HTTPリクエスト
ヘッダの設定
HTTP受付定義ファイル
httprecp.http.charset
プロパティの設定
要求電文(ヘッダ)
charset属性の設定
Content-Type
ヘッダ
charset
属性
HTTPリクエストヘッダのcharset属性の値が設定されます。
×
× httprecp.http.charsetプロパティの値が設定されます。
× × 「UTF-8」が設定されます。
× × 要求電文(ヘッダ)のcharset属性は設定されません。

(凡例)
○:値が設定されている
×:値が設定されていない

(3) HTTP受付のレスポンス処理時のJSON-XML変換機能

HTTP受付のレスポンス処理時のJSON-XML変換のタイミングや設定について説明します。

(a) HTTP受付のレスポンス処理時のJSON-XML変換のタイミング

HTTP受付のレスポンス処理時のJSON-XML変換のタイミングを次の図に示します。

図2-111 レスポンス処理時のJSON-XML変換のタイミング(HTTP受付)

[図データ]

図中の1.〜4.について説明します。

  1. HTTP受付がビジネスプロセスから応答電文を受信します。
  2. データ変換では,ビジネスプロセスから返却されたXML形式の応答電文を扱います。
  3. HTTP受付では,データ変換とコンポーネント共通UOCの呼び出しの間でJSON-XML変換が実行されます。
  4. コンポーネント共通UOCでは,JSON-XML変換機能で変換されたJSON形式の応答電文を扱います。
(b) HTTP受付のレスポンス処理時にJSON-XML変換をする場合の設定

HTTP受付定義ファイルのhttprecp.response.switchover.json-transfer.modeプロパティの値が「true」の場合は,HTTP受付のレスポンス処理時にJSON-XML変換が実行されます。応答電文(ヘッダ)のjson-transfer要素の値が「false」の場合は,HTTP受付のレスポンス処理時にJSON-XML変換は実行されません。HTTP受付定義ファイルのプロパティおよび応答電文(ヘッダ)の設定とJSON-XML変換の実行可否を次の表に示します。

表2-45 レスポンス処理時のJSON-XML変換の実行可否(HTTP受付)

HTTP受付定義ファイル
httprecp.response.switchover.json-transfer.modeプロパティ
応答電文(ヘッダ)
json-transfer要素
JSON-XML変換の実行
−(プロパティを設定していない) 要素なし 実行されない
false
true
false 要素なし 実行されない
false
true
true 設定なし 実行される
false 実行されない
true 実行される
(c) HTTP受付のHTTPレスポンスヘッダに関連する処理

JSON-XML変換機能に関連しているHTTP受付のHTTPレスポンスヘッダについて説明します。

HTTP受付のHTTPレスポンスヘッダの処理の詳細については,「2.13.5 HTTP受付のレスポンス処理」を参照してください。

Content-Typeヘッダ
JSON-XML変換は,応答電文(ヘッダ)に設定されているContent-Typeの値に関わらず実行されます。また,応答電文(ヘッダ)にContent-Typeが設定されていない場合は,「text/xml」がHTTPレスポンスヘッダのContent-Typeヘッダに設定されます。

Content-Typeヘッダのcharset属性
応答電文(ヘッダ)のContent-Typeにcharset属性が設定されていない場合は,HTTPレスポンスヘッダに設定されるContent-Typeヘッダのcharset属性に,HTTP受付定義ファイルのhttprecp.http.charsetプロパティの値が設定されます。httprecp.http.charsetプロパティが設定されていないときは,Content-Typeヘッダのcharset属性に「UTF-8」が設定されます。

応答電文(ヘッダ)およびHTTP受付定義ファイルのプロパティの設定とHTTPレスポンスヘッダのcharset属性の関係を次の表に示します。

表2-46 HTTPレスポンスヘッダのcharset属性の設定(HTTP受付)

応答電文(ヘッダ)
の設定
HTTP受付定義ファイル
httprecp.http.charset
プロパティの設定
HTTPレスポンスヘッダ
charset属性の設定
Content-Type
ヘッダ
charset
属性
応答電文(ヘッダ)のcharset属性の値が設定されます。
×
× httprecp.http.charsetプロパティの値が設定されます。
× × 「UTF-8」が設定されます。
× × HTTPレスポンスヘッダのcharset属性は設定されません。

(凡例)
○:値が設定されている
×:値が設定されていない