LogicFlow の HTTP コネクタでは、? で接続されているクエリパラメータに対しても対応しています。これを利用すると、通常は JSON で値を渡さなくてはいけない API も、クエリパラメータを利用した値の利用が可能です。
本当は Flow だけで済まそうと思ったのですが、関数の記載が上手くいかなかったので、LogicApps → Flow と二段階で呼び出す形にて試してみました。
LogicApps 側では、HTTP Request を受けるトリガと、渡されたクエリパラメータを分解して Flow を呼び出す HTTP コネクタを設定します。
デザイナー上では、HTTP コネクタに謎の test1 という値が登場しています。これは CodeView で見てみると正体がわかります。
上記の赤枠で囲った部分が test1 の正体になります。
@triggerOutputs()['queries']['test1']
triggerOutputs 関数は、トリガから出力される値を取得する関数ですが、HTTP コネクタの場合は、呼び出された際に指定されたクエリパラメータが設定されてきます。その値は実行履歴で、トリガの未出力加工を参照すると確認できます。
queries という配列で、test1 と test2 の値が取得できているのがわかります。実際に呼び出した際には以下のようにしていました。
テストに用いたのは、Chrome アプリの Advanced Rest Client です。個人的には PostMan よりこっちの方が気に入っています(
上記のように、HTTP コネクタが生成した呼出し用の URL に、test1=aaaa&test2=bb というクエリパラメータを追加しているのがわかります。そしてそのパラメータから、test1 で指定された値を取得しているのが、先ほどの triggerOutputs 関数を用いた記述になります。
そしてその後に呼び出した Flow 側の LogicFlow は次のようにしています。
こちらも非常に簡潔に、HTTP Request トリガで受け取り、受け取った値をそのままプッシュ通知させています。スキーマについては、LogicApps 側で送る値を元に作成したものを張り付けているので、プッシュ通知コネクタでは値を選ぶだけで利用できています。
このようにすることで、クエリパラメータの値を抽出しプッシュ通知できたのが確認できました。
triggerOutputs 関数を用いてクエリパラメータを利用すると、JSON の値を使ってのやり取りが難しいケースでも、LogicFlow に値を受け渡すことが行いやすくなります。残念ながら Flow のデザイナ上では、記述しても上手く動いてもらえなかったので今回は LogicApps を起点としましたが、恐らくそのうち上手く動作するようになると思われます。
0 件のコメント:
コメントを投稿