RESTなどのグローバルリソースの接続先を動的に切り替える
DataSpiderのスクリプト上からAPIを呼び出す際、一般的にRESTアダプタのコンポーネントを利用します(バージョン4.2時点での情報です)。このコンポーネントで接続するURLはグローバルリソースで管理されており、コンポーネント内ではURLに付属するディレクトリ名を指定することしかできません。

このため一つのスクリプト内で複数の接続先URLを使い分ける場合、複数個グローバルリソースを作成してそれらを分岐処理等で切り替える方法が多く取られます。しかしこの方法では接続先が増えるとそのたびにスクリプトを修正する必要があり、非効率的な運用になってしまう恐れがあります。
そのため今回は、種別という機能を利用することでスクリプトを編集することなくグローバルリソースを使い分ける方法を紹介します。
種別について
種別とはスクリプトを実行する際にグローバルリソースを切り替えるための機能です。種別はグローバルリソースの種類(データベース・REST・FTP等)を問わずに利用することができます。グローバルリソース作成時には種別は「デフォルト」となっておりますが、ユーザが自由に作ることもできます。

種別は動的な接続先の切り替えのほかにも開発環境・テスト環境・本番環境を使い分ける際にも利用できます。例えば開発環境とテスト環境で異なる接続先を利用する場合、種別を使い分けることで同名のグローバルリソースで接続先を変更することができスクリプトの修正が不要となります。
種別の使い方
種別を利用するには、まず使いたい種別を作成する必要があります。種別の作成はデザイナのツールオプションやトリガーでの設定等の方法があります。

種別の定義ができたのち、その種別を使ったグローバルリソースを作成します。そのためには作成したいグローバルリソースと同名のグローバルリソースを選択して右クリックしたのち、「同名のグローバルリソースを作成」を選択します。


RESTの接続先URLを動的に切り替える
上記の種別をトリガー機能と組み合わせて利用することで、RESTの接続先URLを動的に切り替えることが可能です。
動的に切り替えるための例として、メインスクリプトとサブスクリプトを用意する方法があります。

作成するメインスクリプトではどの種別を利用するのかの判別と、RESTアダプタを使ったサブスクリプトの呼び出しを行います。サブスクリプトでは呼び出した際の種別をもとに接続先を切り替え、接続したいシステムとの連携を行います。サブスクリプトはサービス登録したうえで種別分のHTTPトリガーを作成することで、メインスクリプト側でURLを変更することで種別を切り替えることができます。
この方法による接続先の変更はRESTだけでなくデータベースやFTP等でも有効です。例えば受け取ったパラメータによって利用するデータベースを変える必要がある場合にもぜひご活用ください。
<免責事項>
情報の掲載には注意を払っておりますが、掲載された情報の内容の正確性については一切保証しません。また、当サイトに掲載された情報を利用・使用(閲覧、投稿、外部での再利用など全てを含む)するなどの行為に関連して生じたあらゆる損害等につきましても、理由の如何に関わらず自己責任で行う必要があります。