メインコンテンツまでスキップ

キャプチャされた変数を使用する

備考

想定作業時間:7分

概要

「KurocoEdgeでは、ルールのアクション内で「キャプチャされた」変数を定義することができます。静的変数やAPI変数とは異なり、アクションの「条件/変数」セクションで明示的に定義されるのではなく、正規表現の構文(?P<name>…) を使用し、特定のフィールドの値(URLパスのパターン、ヘッダー、ボディのプレフィックス等)から一致する部分をキャプチャ(取得)して作成されます。

これは、KurocoEdgeで変数を動的で作成するための便利な方法です。これらのキャプチャされた変数は、アクションの「実行」セクション内で他のKurocoEdge変数と同様に再利用できます。使用する構文は{$variable}です。」

学べること

キャプチャされた変数を定義する

「条件/変数」セクションの中で、キャプチャされた変数は、「フィールド設定」内で一般的な正規表現の構文(?P<name>…)を使用して作成できます。

備考

正規表現(regex)の文法を確認するには、regex101の利用方法 を参照してください。

注記

正規表現の構文(?P<...>)は、プログラミングで、矢印括弧(<>)内の値がキャプチャされていることを示すためによく使用されます。

例えば、ヘッダの条件/変数を作成する場合、現在のヘッダの値をキャプチャして変数に割り当ててみます。

ブラウザのデベロッパーツールを開き、Networkタブを開いてみましょう。レスポンスヘッダの中の「Server」ヘッダの現在の値がnginxとなっていることがわかります。

Image from Gyazo

KurocoEdgeの管理画面に戻り、アクション内に新しい条件/変数を設定して、この値をキャプチャします。

まず、「フィールド設定」で「ヘッダ」を選択し、ヘッダフィールドにヘッダの名前を入力します。この場合は「server」と入力します。そして、正規表現の構文を使用して(?P<test_server_value>.*)と入力することで、現在の「server」ヘッダの値をキャプチャします。

Image from Gyazo

注記

注意点として、式の矢印括弧(<>)に続く.*の構文は、値全体がキャプチャされていることを示しています。好みに応じて正規表現パラメータを調整して値のさまざまな部分をキャプチャすることが可能です。

キャプチャされた変数を使用する

キャプチャされた変数を使用するために、アクションの「実行」セクションで新しいヘッダを作成し、変数をヘッダの値として割り当てることができます。

この場合、ヘッダの名前をcaptured_server_valueとし、KurocoEdge変数の標準的な{$variable}構文を使用して、ヘッダの値として{$test_server_value}と入力します。

Image from Gyazo

これにより、以前にキャプチャされたtest_server_value変数の値が挿入されます。

キャプチャされた変数を確認する

もしブラウザの開発コンソールのネットワークタブに戻ると、新しいヘッダが作成されており、古い「server」ヘッダと同じ値(nginx)が表示されていることが確認できます。

Image from Gyazo

これにより、この変数の値が適切にキャプチャされ、意図した通りにアクションで機能していることが確認されました。


サポート

お探しのページは見つかりましたか?解決しない場合は、問い合わせフォームからお問い合わせいただくか、Discordコミュニティにご参加ください。