2017年2月18日土曜日

RESTful っぽく呼び出せる API を LogicFlow だけで構築する

先日の Release Update 02-17 で更新された HTTP Request コネクタでは、POST だけでなく GET や PUT での呼出しに対応したのと、相対パスに対応したので RESTful API 的な呼び出し方(~/employee/2 とか /hogehoge/1 みたいなアクションとパラメータを URL に含む方式)を LogicFlow のみで構築することが可能になりました。

image

まずは HTTP Request コネクタをトリガとして設置します。その際、一度保存してアクセス先の URL を生成してもらうのですが、アドレスを生成した後でなくては、詳細オプションのメソッドや相対パスが反映しない事がありました。見分け方としては、生成されたアドレスに相対パスで指定したものが含まれているかどうかで判別できます。

https://prod-13.northcentralus.logic.azure.com/workflows/{workflow id}/triggers/manual/paths/invoke/{action}/{id}?api-version=2016-06-01&sp=%2Ftriggers%2Fmanual%2Frun&sv=1.0&sig=[signaature]

上記のように、生成されたアドレスに {action} とか {id} といった相対パスが含まれていれば大丈夫ですが、含まれていない場合は、再度 LogicFlow を保存して呼び出してみてください。

image

また、新しくなった LogicApps のブレードでも、トリガ履歴の欄に生成されたアドレスが表示されますので、ここから取得することも可能です。

image

サンプルとして上記のような LogicFlow を作成してみます。action としてメソッド名を渡してもらうイメージで、switch case でそれぞれの処理へ分岐するようなものです。

image

まずは GET で hisashi に 10 という値を設定し呼び出してみますと、上記のように正しく鰻を10匹奢ってもらうよう結果が返されています。

image

今度は hisashi から zaiba2 にアドレスを変えてアクセスしてみると、switch case で正しく分岐されて、戻されてきた結果が変わっているのがわかります。

image

最後に定義していない action を指定した場合も、switch case で「規定」のところへ処理が流れているのが、戻された結果からもわかります。

このように、強化された HTTP Request コネクタを利用すると、これまでコードを書くことでしか用意できなかった RESTful API 的なインターフェースも、コードレスで実現することが可能です。今まではクエリパラメータを利用する方法のみだったのが、相対アドレスを利用できることでより一層できることが広がってきたと思います。

0 件のコメント:

コメントを投稿