はじめに
REST APIによっては、レスポンスコードとしてHTTP 200以外を返す動作や、レスポンスヘッダーとして重要な情報を返す動作があります。この記事では、これらの情報をサービス接続で取得する手順を確認します。
なお、この記事は次の記事の内容を理解していることを前提としています。
例えば、SAPのODataサービスではCSRFトークンが必要になる場合があります。
CSRF Token Validation Failed in POST method in Gateway Client
CSRFトークンはレスポンスヘッダーとして返されるため、対象のAPI利用時にはこの記事で紹介している方法でサービス接続を定義します。
HTTPレスポンスコード/ヘッダーを扱うサービス接続
サービス接続の作成
次の手順では終了ステップによるHTTPレスポンスコード/ヘッダーの設定で作成したCAIプロセス recipe-pca-stepEnd を実行するサービス接続を作成しています。
-
サービス接続を次の設定で作成します。
- 名前を recipe-svcConn-handleResponseCodeHeader とする
- アクション getAction を追加する
-
バインディング タブを選択して URL に終了ステップによるHTTPレスポンスコード/ヘッダーの設定で作成したCAIプロセス recipe-pca-stepEnd のサービスURLを指定します。
-
出力 タブを選択して、出力フィールドを2つ、次のように定義します。
取得元 を HTTP応答ステータスコード とすることでHTTPレスポンスコードを、HTTP応答ヘッダー とすることでHTTPレスポンスヘッダーを取得しています。 -
作成したサービス接続を 保存 して パブリッシュ を実行します。
アプリケーション接続の作成
- アプリケーション接続を次の設定で作成します。
- 名前を recipe-appConn-svcHandleResponseCodeHeader とする
- タイプを recipe-svcConn-handleResponseCodeHeader とする
- 保存、パブリッシュ を実行します。
CAIプロセスの実装
次の手順では作成したサービス接続・アプリケーション接続を利用するCAIプロセスを作成しています。
-
CAIプロセスを次の設定で作成します。
- 名称を recipe-pca-svcHandleResponseCodeHeader とする
- 匿名アクセス を許可する
- クラウドサーバー にデプロイする
-
出力フィールド outputCode、outputHeader を タイプ=テキスト として定義します。
-
サービスステップを選択して、次のように設定します。
- サービスタイプ を 接続 とする
- 接続 を recipe-appConn-svcHandleResponseCodeHeader とする
- アクション を getAction とする
-
割り当てステップを選択して、出力フィールド outCode、outHeader にサービス接続の出力フィールド getActionCode、getActionHeader を指定します。
CAIプロセスの実行
curlコマンドを例とした動作確認結果です。終了ステップによるHTTPレスポンスコード/ヘッダーの設定で作成したCAIプロセス recipe-pca-stepEnd が返すHTTPレスポンスコード(505
)/ヘッダー(headerTest
)をサービス接続経由で取得できました。
curl https://<IICS・CAIサーバー>/active-bpel/public/rt/<Org ID>/recipe-pca-svcHandleResponseCodeHeader
//実行結果
{
"outputCode":"505",
"outputHeader":"headerTest"
}