質問
RESTコネクターを使って外部サービスのAPIを実行します。
返却されるステータスコードによってスクリプトの処理を分岐させたいのですが、可能でしょうか。
回答
RESTコネクターには、レスポンスのHTTPステータスコードを格納するコンポーネント変数「status_code」があります。
これを用いることで、HTTPステータスコードに応じてスクリプト内の処理を条件分岐させることが可能です。
一例として、以下のようなスクリプトが作成できます。
構築例
RESTコネクターの実行結果として、ステータスコード429が返ってきた場合には1分後にもう一度リトライし、503が返ってきた場合には例外通知をし、それ以外の場合にはスクリプトを終了する。
構築イメージ
構築手順
- 以下のアイコンをスクリプトキャンバスに配置します。
・任意のRESTコネクター処理
・[条件分岐]フロー
・[待機]処理
→1分待機する設定をします
・[例外通知]処理
→503が任意の出力メッセージを設定します - RESTコネクターの接続設定を行います。
設定が完了したら、アイコンをコピー&ペーストして処理を複製します(上図「get_retry」)。 - [条件分岐]フローの条件として、RESTコネクターのコンポーネント変数「status_code」が「429」と等しい場合を設定します。
- [条件分岐]フローのアイコンを右クリックし、「条件の追加」を選択、RESTコネクターのコンポーネント変数「status_code」が「503」と等しい場合を設定します。
- ステータスコードが429の場合の分岐処理として、[待機]処理とコピーしたRESTコネクターの処理にフローを引きます。
- ステータスコードが503の場合の分岐処理として、[例外通知]処理にフローを引きます。
補足
リトライ処理をループさせる場合、HULFT Squareには無限ループの検知機能がないため、下記FAQ記事にて案内のとおり、サービス全体に影響を及ぼすおそれがあります。
リトライ処理を繰り返し行いたい場合には、[繰り返し]処理を使用するなどして所定の回数のみリトライするよう実装してください。
コメント
0件のコメント
記事コメントは受け付けていません。