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