Web サービスパラメーターの定義

www.altova.com このトピックを印刷 前のページ 1つ上のレベル 次のページ

ホーム >  Web サービスの呼び出し > Web サービス呼び出しの追加 (REST-スタイル) >

Web サービスパラメーターの定義

URL パラメーターを持つ Web サービスを呼び出す必要がある場合、Web サービスコール設定 ダイアログボックス内でパラメーターが明示的に定義される必要があります。このダイアログボックスにより、カスタムヘッダーを持つ Web サービスリクエストを構成することができます。

 

 

Web サービスパラメーターを定義する方法:

1.マッピングの Web サービスコンポーネントのタイトルバーをダブルクリックします。または、右クリックして「プロパティ」を選択します。 Web サービスコール設定 ダイアログボックスが開かれます。

mf_ws_03

2.「サービス定義」から 「手動」を選択します。 上記の通り、手動でパラメーターを入力、または、代替として、既存の URL 、または、 WADL ファイルからインポートすることができます。 必要に応じて更に変更することのできる、「パラメーター」テーブル内でインポートされたテーブルを使用できるようになります。
3.「パラメーターの追加」 ( ic_paramadd ) と 「パラメーターの削除」 ( ic_paramdel ) ボタンをそれぞれ使用します。

 

「パラメーター」 テーブルには以下を意味します:

 

名前

URL パラメーターの名前を指定します。 パラメーター名は一意で文字、数字、ピリオド (.) 、ハイフン (-) 、アンダースコア (_) から構成されている必要があります。パラメーラー名内で空白文字は許可されていません。

スタイル

URL パラメーターの構文 (スタイル) を指定します。

 

Web サービスを呼び出す際に「ヘッダー」スタイルを使用して、 HTTP ヘッダー にパラメーターを追加してください。 例えば、値 text/xml を持つパラメーター Accept を追加することは、 Web サーバーに MapForce が XML 書式のレスポンスを期待することを通知する Accept: text/xml ヘッダーを指定することと同じです。HTTP ヘッダーに関する詳細は、 https://www.iana.org/assignments/message-headers/message-headers.xhtml を参照してください。

 

?key=value&key=value 書式を使用してキー値ペアを定義する URL パラメーターのための「クエリ」スタイルを使用します:

 

例: http://example.org/api/products?sort=asc&category=1&page=1

 

中かっこ内に囲まれた URL パラメーターのために「テンプレート」スタイルを使用します。 例: http://example.org/api/products/{id} 。このようなパラメーターのために、MapForce は RFC 6570 ルールに基づき値をエスケープします (https://tools.ietf.org/html/rfc6570)。

 

フォーマット ;key=value;key=value; 内のキー値ペアを定義する URL パラメーターのために「マトリックス」スタイルを使用します。

 

例: http://example.org/api/products;sort=asc;category=1;page=1;

 

Boolean マトリックスパラメーターを使用するには、スタイルを「マトリックス」に設定して、「boolean」を入力します (次のオプションを参照してください)。

パラメーター (文字列、整数、日付など)のデータの型を指定します。 XML スキーマ型であることができます。Web サービスの呼び出しが発生すると、文字列ではない値は文字列に変換されることに注意してください。 しかし、間違った値と共に Web サービスを呼び出そうと試みた場合 MapForce が変換エラーメッセージを表示するために、型を設定することは意味があります。

マップ可能

マッピングから値をこのパラメーターにパスする場合、このチェックボックスを選択します。このオプションは 「固定値」 オプションと相互に排他的です。

固定値

パラメーターの値を指定します。パラメーターに定数地が存在する場合のみ、適用することができます。パラメータがマップ可能な場合は適用することができません (前のオプションを参照)。

必須

Web サービスによりパラメーターが必要とされている場合、このチェックボックスを選択してください。必要とされ、マップ可能なパラメーターのために、 MapForce は検証チェックを強制します (すなわち、パラメータが価を持たない場合、エラーメッセージが表示されます)。

繰り返し

パラメーターが単一の値、または、複数の値を持つかを指定します。この設定は、マップ可能なパラメーターにのみ適用可能です。単一のパラメーターを使用して 同じ Web サービスの呼び出し内の複数の値にパスすることができます。

 

チェックボックスを選択して場合、値のシーケンスを単一の値の代わりにマッピング上のパラメーター構造ノードに接続することができます。 MapForce は値のシーケンスをパラメーターのスタイルにより以下のように処理します:

 

「テンプレート」パラメーターに関しては、値は Web サービスにコンマで区切られて提供されます。 例: http://example.org/api/products/1,2,3
「クエリ」パラメーターに関しては、 パラメーラー名は各値のために繰り返されます。 例: http://example.org/api/products?color=red&color=green&color=blue
スタイルが「マトリックス」の場合、複数の値はコンマで区切られて表示されます。 例: http://example.org/api/products;color=red;color=green;color=blue;size=big;size=small;
スタイルが「ヘッダー」の場合、 HTTP ヘッダーは各値のために繰り返されます。

説明

パラメーターの任意の説明を指定します。パラメーターがマップ可能な場合、ここに入力されている説明がマップコンポーネントとしてマッピングアイテムの横に説明として表示されます。

 

 

サンプル 1: ヘッダーとテンプレートパラメーター

下で説明される Web サービスは、製品を HTTP GET メソッドを使用して識別子 (id) により抽出します。Web サービスの URL は、id パラメーターを中かっこ内で指定します。id パラメーターはパラメーターテーブルに存在し、すらいる「テンプレート」を持っています。 また 「マップ可能」 でもあります: これにより、パラメーターがマッピング上で(例えば、データベース、ファイル、または、定数から抽出された)実際の値の id に接続することのできる構造ノードとして表示されます。マッピング実行ランタイムでは、このパラメーターは実際の値と置き換えられます。ですから、値が「1」の場合、 URL は http://example.org/api/products/1 になります。

 

マッピングから値の代わりに定数 id 値を提供するには、チェックボックス 「マップ可能」をクリアして、 「固定値」 列に値を入力します。

mf_ws_03

パラメーター AcceptAccept-Charset は「ヘッダー」スタイルが選択されています。これらのパラメーターは、カスタムリクエストヘッダーを持つ Web サービスを呼び出すために使用されます。  ヘッダー値を提供するために2つの方法があります:

 

オプション 「マップ可能」 をチェックしたままで、マッピングからカスタムのヘッダー値を提供します。または、
オプション 「マップ可能」 のチェックを解除し、 「固定値」 列内に直接値を入力します。

 

サンプル 2: マトリックスパラメーター

下で説明されている Web サービスは、引数として与えらえれいる色とサイズに一致する製品のリストを抽出します。パラメーターのスタイルは「マトリックス」であるため、 URL の内部、およびマッピングテーブル内のプレースホルダとして定義されています。パラメーターはマップ可能で、「繰り返し」オプションがチェックされていることに注意してください。 これは(例えば、テキストファイル、 XML ノード、または、 データベース列の内部の行のリストなど)値がマッピング上の値のシーケンスから読み取られ、ランタイムで Web サービスに提供されることを意味します。ですから、下記のような URL は以下のようになります:

http://example.org/api/products/;color=red;color=blue;size=big;size=small :下記のような例は、 redblue を色として、 bigsmall をサイズとしてマッピングに提供しています。

mf_ws_04

URL が http://example.org/api/products;color=red,blue;size=big,small である必要がある場合、以下を行います:

 

1.以下のとおり URL を入力します: http://example.org/api/products;color={color};size={size}
2.「パラメーター」テーブル内で、パラメーターのスタイルを「テンプレート」に変更します。

 

URL が http://example.org/api/products?color=red,blue&size=big,small である必要がある場合、以下を行います:

 

1.以下のとおり URL を入力します: http://example.org/api/products?color={color}&size={size}
2.「パラメーター」テーブル内で、パラメーターのスタイルを「テンプレート」に変更します。

 

サンプル 3: クエリパラメーター

下で説明される Web サービスは、引数として提供される色とサイズに一致する製品のリストを抽出します。今回は、スタイル「クエリ」が使用されています。このスタイルに関しては、URL 内のプレースホルダとしてパラメーターを定義する必要はありません。 ですからこれらは「パラメーター」テーブル内でのみ定義されています。 このサンプルでは、パラメータの値は固定されており、マッピングから提供される必要はないものとします。 これを達成するために、パラメーターの値は、「固定値」に入力され、「マップ可能」オプションのチェックは解除されています。 このためマッピングランタイムでは、下の URL は http://example.org/api/products?color=red&size=big になります。

mf_ws_05


(C) 2019 Altova GmbH