Postman Flows を Webhook経由で起動し、JSON Body を引き渡す
今日は前回以下の記事で作った環境を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
}

JSON Bodyが正しく飛んだことがわかります!

Discussion