2.16.14 HTTPアダプタのJSON-XML変換機能
HTTPアダプタのJSON-XML変換機能とは,HTTPアダプタでXML形式の要求電文をJSON形式に,またはJSON形式の応答電文をXML形式に変換する機能です。
- 〈この項の構成〉
(1) HTTPアダプタのJSON-XML変換機能の概要
ビジネスプロセスで扱うXML形式の要求電文を,HTTPアダプタでJSON形式に変換してRESTful Webサービスに送信します。また,RESTful Webサービスから応答されたJSON形式の応答電文をXML形式に変換し,ビジネスプロセスへ応答します。HTTPアダプタのJSON-XML変換機能を使用したサービス部品呼び出し要求および応答の流れを次の図に示します。
|
HTTPアダプタに設定する電文フォーマット(XMLスキーマ)は,JSON変換ツールで生成します。JSON変換ツールは,JSON形式の電文のサンプルを受け取り,JSON-XML変換後のXML形式の電文に適合する電文フォーマットを生成します。HTTPアダプタの開発の流れを次の図に示します。
|
HTTPアダプタの定義の詳細については,マニュアル「サービスプラットフォーム 開発ガイド 受付・アダプタ定義編」の「3.3.13 HTTPアダプタを定義する」を,JSON変換ツールの詳細については,マニュアル「サービスプラットフォーム 開発ガイド 基本開発編」の「13. JSON変換ツールを使用したデータ変換」を参照してください。
(2) HTTPアダプタのリクエスト処理時のJSON-XML変換機能
HTTPアダプタのリクエスト処理時のJSON-XML変換のタイミングや設定について説明します。
(a) HTTPアダプタのリクエスト処理時のJSON-XML変換のタイミング
HTTPアダプタのリクエスト処理時の,JSON-XML変換のタイミングを次の図に示します。
|
図中の1.〜4.について説明します。
-
ビジネスプロセスから要求電文を受信します。
-
データ変換では,ビジネスプロセスから送信されたXML形式の要求電文を扱います。
-
HTTPアダプタでは,データ変換とコンポーネント共通UOCの呼び出しの間でJSON-XML変換が実行されます。
-
コンポーネント共通UOCでは,JSON-XML変換機能で変換されたJSON形式の要求電文を扱います。
(b) HTTPアダプタのリクエスト処理時にJSON-XML変換をする場合の設定
HTTPアダプタ定義ファイルのadphttp.request.switchover.json-transfer.modeプロパティの値が「true」の場合は,HTTPアダプタのリクエスト処理時にJSON-XML変換が実行されます。要求電文(ヘッダ)のjson-transfer要素の値が「false」の場合は,HTTPアダプタのリクエスト処理時にJSON-XML変換は実行されません。HTTPアダプタ定義ファイルのプロパティおよび要求電文(ヘッダ)の設定とJSON-XML変換の実行可否を次の表に示します。
HTTPアダプタ定義ファイル adphttp.request.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.16.3 HTTPリクエストと要求電文の関係」を参照してください。
- Content-Typeヘッダ
-
JSON-XML変換は,要求電文(ヘッダ)のContent-Typeの設定に関わらず実行されます。また,要求電文(ヘッダ)にContent-Typeが設定されていない場合は,HTTPリクエストヘッダにContent-Typeヘッダが設定されません。
- Content-Typeヘッダのcharset属性
-
要求電文(ヘッダ)のContent-Typeにcharset属性が設定されていない場合は,HTTPリクエストヘッダに設定されるContent-Typeヘッダにcharset属性が設定されません。
(3) HTTPアダプタのレスポンス処理時のJSON-XML変換機能
HTTPアダプタのレスポンス処理時のJSON-XML変換のタイミングや設定について説明します。
(a) HTTPアダプタのレスポンス処理時のJSON-XML変換のタイミング
HTTPアダプタのレスポンス処理時のJSON-XML変換のタイミングを次の図に示します。
|
図中の1.〜4.について説明します。
-
HTTPアダプタがRESTful Webサービスから応答電文を受信します。
-
HTTPアダプタのコンポーネント共通UOCでは,サービス部品から返却されたJSON形式の応答電文を扱います。
-
HTTPアダプタでは,コンポーネント共通UOCの呼び出しとデータ変換の間でJSON-XML変換が実行されます。
-
HTTPアダプタのデータ変換では,JSON-XML変換機能で変換されたXML形式の応答電文を扱います。
(b) HTTPアダプタのレスポンス処理時にJSON-XML変換をする場合の設定
HTTPアダプタ定義ファイルのadphttp.response.switchover.json-transfer.modeプロパティの値が「true」の場合,HTTPアダプタのレスポンス処理時にJSON-XML変換が実行されます。応答電文(ヘッダ)では,JSON-XML変換を実行するかどうかの切り替えはできません。HTTPアダプタ定義ファイルのプロパティの設定とJSON-XML変換の実行可否を次の表に示します。
HTTPアダプタ定義ファイル adphttp.response.switchover.json-transfer.modeプロパティ |
JSON-XML変換の実行 |
---|---|
−(プロパティを設定していない) |
実行されない |
false |
実行されない |
true |
実行される |
(c) HTTPアダプタのHTTPレスポンスヘッダに関連する処理
JSON-XML変換機能に関連しているHTTPアダプタのHTTPレスポンスヘッダについて説明します。
HTTPアダプタのHTTPレスポンスヘッダの処理の詳細については,マニュアル「サービスプラットフォーム 解説」の「2.16.4 HTTPレスポンスと応答電文の関係」を参照してください。
- Content-Typeヘッダについて
-
JSON-XML変換は,HTTPレスポンスヘッダのContent-Typeヘッダの値に関わらず実行されます。また,Content-TypeヘッダがHTTPレスポンスヘッダに設定されていない場合は,応答電文(ヘッダ)にContent-Typeが設定されません。
- Content-Typeヘッダのcharset属性について
-
HTTPレスポンスヘッダのContent-Typeヘッダにcharset属性が設定されていない場合は,応答電文(ヘッダ)のcharset属性が設定されません。