Hitachi

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


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

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

〈この項の構成〉

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

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

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

[図データ]

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

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

[図データ]

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

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

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

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

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

図2‒132 リクエスト処理時の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‒60 リクエスト処理時の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.14.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‒61 要求電文(ヘッダ)の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‒133 レスポンス処理時の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‒62 レスポンス処理時の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.14.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‒63 HTTPレスポンスヘッダのcharset属性の設定(HTTP受付)

応答電文(ヘッダ)

の設定

HTTP受付定義ファイル

httprecp.http.charset

プロパティの設定

HTTPレスポンスヘッダ

charset属性の設定

Content-Type

ヘッダ

charset

属性

応答電文(ヘッダ)のcharset属性の値が設定されます。

×

×

httprecp.http.charsetプロパティの値が設定されます。

×

×

「UTF-8」が設定されます。

×

×

HTTPレスポンスヘッダのcharset属性は設定されません。

(凡例)

○:値が設定されている

×:値が設定されていない