はじめに
CAIプロセス実行時のリクエストメソッド(GET, POSTなど)やResourcePathを取得するではURIを動的に指定可能なCAIプロセスの実装を確認しました。この記事では、動的なURIを使用するサービス接続の実装を確認します
なお、この記事は次の記事の内容を理解していることを前提としています。
- はじめてCAIを使う際に
- プロセスの作成と実行(匿名認証と基本認証)
- 割り当てステップと、各種変数フィールドの利用
- CAIプロセス実行時のリクエストメソッド(GET, POSTなど)やResourcePathを取得する
- サービス接続によるREST APIの実行
動的なURIを使用するサービス接続の使用
サービス接続の作成
次の手順ではCAIプロセス実行時のリクエストメソッド(GET, POSTなど)やResourcePathを取得するで作成した recipe-pca-functionVerbResourcePath を呼び出すサービス接続を作成しています。
-
サービス接続を次の設定で作成します。
- 名前を recipe-svcConn-dinamicURI とする
- アクション getAction を追加する
-
アクション タブ、入力 タブを選択して、入力フィールドを 名前=path、タイプ=テキスト、テストに使用する値=TestPath1/TestPath2 として定義します(ここで定義した入力フィールドは、CAIプロセスでこのサービス接続を使用する際の入力フィールドとなります)。
-
バインディング タブを選択して URL にCAIプロセス実行時のリクエストメソッド(GET, POSTなど)やResourcePathを取得するで作成した recipe-pca-functionVerbResourcePath のサービスURLに
/{$path}
を加えた文字列を指定します。/{$path}
は定義済みの入力フィールドです。
-
テスト結果 タブを選択して、テスト を実行、次のように3つのフィールドが得られる動作を確認できたら プロセスオブジェクトの生成 を実行します。
-
作成したサービス接続を 保存 して パブリッシュ を実行します。
アプリケーション接続の作成
- アプリケーション接続を次の設定で作成します。
- 名前を recipe-appConn-svcDinamicURI とする
- タイプを recipe-svcConn-dinamicURI とする
- 保存、パブリッシュ を実行します。
CAIプロセスの作成
次の手順では作成したサービス接続・アプリケーション接続を利用するCAIプロセスを作成しています。
-
CAIプロセスを次の設定で作成します。
- 名称を recipe-pca-svcDinamicURI とする
- 匿名アクセス を許可する
- クラウドサーバー にデプロイする
-
入力フィールド input1,input2 を タイプ=テキスト として定義します。
-
出力フィールド output を定義します。タイプ はサービス接続で作成したプロセスオブジェクトを次のように指定します。
-
一時フィールド tmpPath を タイプ=テキスト として定義します。
-
割り当てステップを選択して一時フィールド tmpPath に 計算式 として
if ($input.input2 = "") then $input.input1 else concat($input.input1, "/", $input.input2)
を指定します。
なお、計算式は次の内容をChatGPTに伝えて生成してもらったコードを元としています。XQueryで次のコードを書いてほしいよ
- tmpPath、input1、input2というテキスト型の変数があるよ
- input1とinput2をスラッシュ区切りで連結してほしいよ
- input2が空文字の場合には、区切り文字(スラッシュ)は不要だよ -
サービスステップを選択して、次のように設定します。
- サービスタイプ を 接続 とする
- 接続 を recipe-appConn-svcDinamicURI とする
- アクション を getAction とする
-
サービスステップの 入力フィールド タブを選択して、入力フィールド path に一時フィールド tmpPath を指定します。
-
割り当てステップを選択して、出力フィールド output にサービス接続の出力フィールド getActionOut を指定します。
CAIプロセスの実行
curlコマンドを例とした動作確認結果です。入力フィールドの違いにより、出力フィールドが変わる動作を確認できます。
curl https://<IICS・CAIサーバー>/active-bpel/public/rt/<Org ID>/recipe-pca-svcDinamicURI
//実行結果
{"output":{"outVerb":"GET"}}
curl https://<IICS・CAIサーバー>/active-bpel/public/rt/<Org ID>/recipe-pca-svcDinamicURI \
-H 'Content-Type: application/json' \
-d '{
"input1": "AAA"
}'
//実行結果
{"output": {
"outVerb": "GET",
"outPath1": "AAA"
}}
curl https://<IICS・CAIサーバー>/active-bpel/public/rt/<Org ID>/recipe-pca-svcDinamicURI \
-H 'Content-Type: application/json' \
-d '{
"input1": "AAA",
"input2": "BBB"
}'
//実行結果
{"output": {
"outVerb": "GET",
"outPath1": "AAA",
"outPath2": "BBB"
}}