今日は前回以下の記事で作った環境をWebhookで起動してみます。https://qiita.com/KameMan/items/b3313738bf29ec469dd1
まず最初に少しAPIコールを行う各タスクの名前の整理をします。
各APIコールを設定する画面で以下のように名前を記載して保存
ボタンを押せばOKです。
以下のように見やすくなりました。
Flowの名前も同様に整理できます。
Webhookからの起動
このPostman Flows では作成したFlowをWebhookから起動させることが出来ます。
画面左下のWebhook
をクリックします。
Publish
を押します。
Postmanが管理するクラウド領域へFlowがアップロードされます。
この値をcurlなどで呼び出すとFlowが実行されます。
curl `https://389ef02ffba047e29143f9dba7baaf6f.flow.pstmn.io/`
ブラウザでこのURLを読み込んでも動作しますが2回起動されます。これは暗黙的にブラウザがfavicon.ico
を読み込もうとするため、そこに対してもWebhookリクエストが処理されてしまうためです。今回はrequestcatcher.com
を使っているので無視しますが、通常のAPI開発を行う場合はfavicon.ico
へのアクセスは無視するよう設定を行いましょう。
次にRun
ボタンを押すと以下のようなダイアログが出てきます。
そのまま何も入力せずにSend
を押すと同様のテストが行えます。
Webhookリクエスト時にJSON Bodyが渡せる様です。早速やってみます。
Webhook.site
今まで使用してきたhttp://requestcatcher.com
ではJSON Bodyの処理が行えません。ここで、もう一つの神サイトhttps://webhook.site/
を使います。
サイトにアクセスするとこのようにWebhookリクエストを受信可能な一意のURLを作成してくれます。
Postmanの画面でAPIコールの投げ先をrequestcatcher.com
からこちらに変更します。
保存
ボタンをちゃんと押してFlowを起動してみます。
以下のようにリクエストが正しく届いていれば正解です。
ではこれからJSON Bodyの受け渡しの設定を行います。APIコールの設定画面でボディ
タブからRaw
を選択し{{test_json}}
と入力します。
保存
を押すとFlowの画面が以下のように変わります。
test_json
という変数が出てきました。(シンプルにするためにもう一つのAPIコール処理は削除していますが、あってもなくても大丈夫です)
Start
からもう一つ線をつないであげます。
Body
に以下の値を入力して再度テストを行います。
{
"event_timestamp": 1703245656262,
"publish_timestamp": 1703245656262
}