外部 Web サービスの追加
外部の Web サービスとは、サードパーティがインターネット上で提供しているデータ処理サービスのことです。外部 Web サービスをフローのステージとして使用し、Spectrum™ Technology Platform サーバーの機能を拡張することができます。
この手順では、Spectrum™ Technology Platform サーバーとサードパーティ Web サービスとの間の接続を定義します。手順が完了すると、Enterprise Designer に、外部 Web サービスを表す新しいステージが追加されます。この外部 Web サービスは、フローの他のステージと同様に使用できます。
- Management Console を開きます。
- [リソース] > [外部の Web サービス] に移動します。
- [追加] ボタン をクリックします。
-
[記述子] ステップで、次の手順を実行します。
-
次のいずれかの方法で、Web サービスの WADL または WADL を指定します。
URL からの Web サービス記述子のロード [記述子をロード] フィールドで、[URL によって] を選択し、[URL] フィールドで WADL または WSDL の URL を指定します。Web サービスの資格情報を求められた場合は、資格情報を入力します。 ファイルからの Web サービス記述子のロード [記述子をロード] フィールドで、[アップロード] を選択し、[ファイルのアップロード] フィールドでファイルを選択します。Web サービス ベンダーによっては、WSDL または WADL の提供方法として、URL 経由ではなく、ファイルを指定している場合があります。 WADL を持たない REST Web サービスの場合 [記述子をロード] フィールドで、[なし] を選択します。 - [次へ] をクリックします。
-
次のいずれかの方法で、Web サービスの WADL または WADL を指定します。
-
[設定] ステップで、次の手順を実行します。
- [名前] フィールドに、外部の Web サービスが Spectrum™ Technology Platform で公開される時の名前を入力します。この名前は、Enterprise Designer に表示されるステージ名となります。どのような名前を付けてもかまいませんが、システム上の他の Web サービスで使用されている名前と重複してはなりません。
-
[タイムアウト] フィールドに、Web サービスに送信したリクエストがタイムアウトするまでの経過時間を秒数で入力します。
注: ここで指定したタイムアウト値は、Web サービスに対するすべてのリクエストに適用されます。これには、公開された Web サービスに対するトランザクションだけでなく、Web サービスの設定の過程で送信されるリクエストも含まれます。このような設定のリクエストは、[リクエスト] ページで新しい項目を選択した時や、プレビューを実行したときに送信されます。タイムアウトは、これらのどのアクションを実行する場合にも生じる可能性があります。タイムアウトが生じる場合、Web サービスが実際に稼働中であるならば、[タイムアウト] の値を大きくすることによってそれを回避できる可能性があります。
-
外部の Web サービスでユーザ名とパスワードが必要とされる場合は、[セキュリティ設定] の [タイプ] フィールドで、ユーザ名とパスワードを Spectrum™ Technology Platform サーバーから外部の Web サービスに転送する方法を選択します。
- なし
- 外部の Web サービスの使用にユーザ名とパスワードの入力が必要とされない場合は、このオプションを選択します。
- ベーシック認証
- ユーザ名およびパスワード情報を HTTP ヘッダで外部の Web サービスに渡す場合は、このオプションを選択します。
- WS-Security
- (SOAP サービスのみ) ユーザ名およびパスワード情報を SOAP メッセージのヘッダーを通じて外部の Web サービスに渡す場合は、このオプションを選択します。
- 外部 Web サービスへのアクセスに必要ならば、ユーザ名とパスワードを入力します。
- [次へ] をクリックします。
-
[リクエスト] ステップで、外部の Web サービスへのリクエストに含めるパラメータを設定します。
REST Web サービスの場合:
- URL
- [記述子] ステップで WADL を指定しなかった場合は、パス パラメータ (あれば) と、要求に含めるクエリ パラメータを含む、サンプル要求 URL を入力します。例:
http://example.com/rest/customers/{state}?age=31
ここには、1 つのパス パラメータ {state} と 1 つのクエリ パラメータ age があります。
[記述子] ステップで WADL を指定した場合は、指定した WADL に基づくエンドポイントが [URL] フィールドに表示されます。このエンドポイントを編集することはできません。
- Resource
- この設定は、[記述子] ステップで WADL を指定した場合のみ表示されます。Spectrum™ Technology Platform 上に公開する Web サービスのリソースを選択します。注: 2 つ以上のリソースを公開したい場合は、各リソースに対して個別の外部 Web サービスを定義する必要があります。
- 方法
- 外部の Web サービスへの要求に使用する HTTP メソッドを選択します。
[記述子] ステップで WADL を指定した場合は、その外部 Web サービスによってサポートされている HTTP メソッドのみがリストに表示されます。
- パス パラメータ
- [パス パラメータ] セクションには、その外部 Web サービスがパス パラメータを使用する場合は、URL パスに含まれるパラメータが一覧表示されます。例えば、この URL にはパス パラメータ {state} が含まれます。
http://example.com/rest/customers/{state}?age=31
[記述子] ステップで WADL を指定した場合は、Web サービスのパス パラメータがリストに表示されます。[記述子] ステップで WADL を指定しなかった場合は、[URL] フィールドに入力したサンプル要求 URL からパス パラメータのリストが生成されます。パス パラメータを追加または削除するには、URL からそれを追加または削除します。URL の中の波括弧で囲まれた部分はすべて、パス パラメータとして解釈されます。
- クエリ パラメータ
- [クエリ パラメータ] セクションには、要求 URL 内で "?" の後に記述されるパラメータのリストが表示されます。例えば、この URL にはクエリ パラメータ age が含まれます。
http://example.com/rest/customers/{state}?age=31
[記述子] ステップで WADL を指定した場合は、Web サービスのクエリ パラメータがリストに表示されます。[記述子] ステップで WADL を指定しなかった場合は、[URL] フィールドに入力したサンプル要求 URL からクエリ パラメータのリストが生成されます。クエリ パラメータを追加または削除するには、URL からそれを追加または削除します。
表 1. REST パス パラメータとクエリ パラメータの設定 設定 説明 エクスポーズ Spectrum™ Technology Platform ステージでパラメータを使用可能にするには、この列のチェックボックスをオンにします。 要求 この列には、外部 Web サービスへの要求に使用されるパラメータ名がリスト表示されます。 入力 この列には、フローで表示される時の入力フィールドの名前がリストされます。サードパーティの Web サービスで使用されていたものと同じ名前を使用することも、変更することもできます。名前を変更するには、名前の上にカーソルを合わせて編集ボタン をクリックします。 デフォルト値 フィールドのデフォルト値を指定する場合は、このチェックボックスをオンにします。チェックボックスをオンにした後に表示されるフィールドにデフォルト値を入力します。 フローからオーバーライドできないデフォルト値を指定するには、[デフォルト値] 列のチェックボックスをオンにして、[要求] 列の対応するボックスをオフにします。これによって、外部の Web サービスへの要求でデフォルト値を指定する場合に、フローにおいてそのフィールドは非表示となります。要求ごとに指定する必要のあるアクセス キーがある場合は、これが便利です。例:
SOAP Web サービスの場合:
- URL
- このフィールドには、[記述子] ステップで指定した WADL に基づくエンドポイントが表示されます。このフィールドは編集できません。
- 操作
- 実行する Web サービスの操作を選択します。 注: 2 つ以上の操作を公開したい場合は、各操作に対して個別の外部 Web サービスを定義する必要があります。
- 要求
- この列では、Spectrum™ Technology Platform を通じて利用可能にするフィールドとオプションを選択します。
- 入力
- この列には、フローで表示される時の入力フィールドの名前がリストされます。サードパーティの Web サービスで使用されていたものと同じ名前を使用することも、変更することもできます。名前を変更するには、名前の上にカーソルを合わせて編集ボタン をクリックします。
- デフォルト値
- フィールドのデフォルト値を指定する場合は、このチェックボックスをオンにします。チェックボックスをオンにした後に表示されるフィールドにデフォルト値を入力します。
フローからオーバーライドできないデフォルト値を指定するには、[デフォルト値] 列のチェックボックスをオンにして、[要求] 列の対応するボックスをオフにします。これによって、外部の Web サービスへの要求でデフォルト値を指定する場合に、フローにおいてそのフィールドは非表示となります。要求ごとに指定する必要のあるアクセス キーがある場合は、これが便利です。例:
-
[メソッド] フィールドで POST または PUT を選択した場合は、POST または PUT 操作で Web サービスに送信するデータの構造を定義します。これを定義するには、[フォーマット] ボタンをクリックし、次のオプションのいずれかを選択します。
- スキーマのアップロード
- POST または PUT 操作で Web サービスに送信するデータの構造を定義する XML スキーマを用意している場合は、このオプションを選択します。このオプションを選択した後、スキーマ ファイルの場所を参照して指定します。
- サンプルの提供
- POST または PUT 操作で Web サービスに送信するデータのサンプルを用意している場合は、このオプションを選択します。このオプションを選択した後、手動でサンプルを入力するか、ウィンドウにサンプルをペーストします。
スキーマかサンプルを提供したら、フロー ステージで利用可能にする各データ要素の隣にあるボックスをチェックします。
- [次へ] をクリックします。
-
[ヘッダー] ステップで、次の手順を実行します。
- [HTTP ヘッダ] で、各ヘッダについて、外部の Web サービスに渡す値を指定します。ここで指定した値は、Spectrum™ Technology Platform から外部の Web サービスに送信されるすべてのリクエストで使用されます。ヘッダが表示されていない場合、その外部の Web サービスでは HTTP ヘッダの使用が必須ではありません。
-
SOAP Web サービスで、その外部の Web サービスが SOAP ヘッダをサポートしている場合は、[SOAP ヘッダ] でヘッダを選択することが可能です。各 SOAP ヘッダにデフォルト値を指定できます。このデフォルト値は、Spectrum™ Technology Platform への各リクエストにおいて上書きすることができます。[入力] 列には、Spectrum™ Technology Platform へのリクエストで使用されるヘッダの名前が表示されます。名前を変更する場合は、名前の上にカーソルを合わせて、編集ボタン をクリックします。
チェック ボックスがオンで、グレー表示されている場合は、そのヘッダは必須で、無効にできないことを意味します。
- [次へ] をクリックします。
-
[応答] ステップで、次の手順を実行します。
- 外部の Web サービスから、単一のフィールドでレスポンスが返されるようにしたい場合は、Return payload as field のボックスをチェックします。これにより、すべてのレスポンス要素が個別フィールドではなく、単一のフィールドに配置されます。フィールド名は、REST Web サービスの場合は RestReponse で、SOAP Web サービスの場合は SoapResponse です。
-
REST Web サービスを設定している場合は、[フォーマット] ボタンが表示されます。このボタンをクリックすると、Spectrum™ Technology Platform によって返される Web サービス レスポンスの構造を定義する方法を選択できます。
- スキーマのアップロード
- Spectrum™ Technology Platform が返すレスポンスの構造を定義する XML スキーマを用意している場合は、このオプションを選択します。このオプションを選択した後、スキーマ ファイルの場所を参照して指定します。
- サンプルの提供
- Spectrum™ Technology Platform からのレスポンスを定義するための、外部の Web サービスからのレスポンスのサンプルを用意している場合は、このオプションを選択します。このオプションを選択した後、手動でサンプルを入力するか、ウィンドウにサンプルをペーストします。
-
[レスポンス] 列で、Spectrum™ Technology Platform で利用可能にするフィールドを選択します。
このアイコン は、フィールドがリスト フィールドとして返されることを意味します。リストは、反復可能な階層データを含む、Spectrum™ Technology Platform のデータ タイプです。例えば、[PhoneNumbers] フィールドには、複数の [Phone] フィールドが含まれる可能性があります。
<PhoneNumbers> <Phone> <Type>Cell</Type> <Number>312-123-4567</Number> </Phone> <Phone> <Type>Home</Type> <Number>773-123-4567</Number> </Phone> </PhoneNumbers>
この場合、[PhoneNumbers] フィールドは、[Phone] 要素のリストを含むリスト フィールドとなります。
- [出力] 列には、フローで表示される出力フィールドの名前がリストされます。サードパーティの Web サービスで使用されていたものと同じ名前を使用することも、変更することもできます。名前を変更するには、名前の上にカーソルを合わせて編集ボタン をクリックします。
- [次へ] をクリックします。
-
[プレビュー] ステップでは、サンプル データを入力して [プレビューを実行] をクリックすることで、外部の Web サービスをテストできます。この手順は省略可能です。
サンプル データを入力する際は、次の点に注意してください。
- すべてのフィールドにデータを入力する必要はありません。フィールドを空のままにすると、空の文字列がプレビューに使用されます。
- フィールドにデフォルト値または null 値を引き渡した場合の影響をプレビューしたい場合は、フィールドの横にある無効アイコン
をクリックします。[要求] タブでフィールドのデフォルト値を定義した場合は、デフォルト値が使用されます。デフォルト値を定義しなかった場合は、null 値が使用されます。 - 複数のレコードを同時にプレビューできます。レコードを追加するには、追加ボタン をクリックします。
- テスト用のデータはファイルからインポートできます。データをインポートするには、インポート ボタン をクリックします。次のことに注意してください。
- ファイルの最初の行は、ヘッダー レコードでなければなりません。ヘッダー内のフィールド名は、サービスで必要とされるフィールド名と一致する必要があります。
- インポートできるレコードは、最大 5 個です。
- フィールドの区切り文字がスペースの場合、フィールド値を引用符で囲む必要があります。スペースをフィールドの区切り文字に使うファイルの例を以下に示します。
AddressLine1 AddressLine2 City StateProvince PostalCode "One Global View" "" "Troy" "NY" "12180" "3001 Summer St" "" "Stamford" "CT" "06926" "224 N Michigan Ave" "Suite 300" "Chicago" "IL" ""
- すべてのレコードを削除するには、プレビュー エリアの上部にある [削除] ボタン
をクリックします。 - 特定のレコードを削除するには、入力レコード名 ("Input Record 1" など) の上にカーソルを合わせてレコード名の横の [削除] ボタン
をクリックします。
- 外部の Web サービスをフローで利用可能にするには、[有効] スイッチを [On] に切り替えます。
- [保存] をクリックします。
以上で外部の Web サービスが定義され、Enterprise Designer のフロー内のステージとして使用できるようになります。