🦁

Postman Flows を Webhook経由で起動し、JSON Body を引き渡す

2025/03/03に公開

今日は前回以下の記事で作った環境をWebhookで起動してみます。https://qiita.com/KameMan/items/b3313738bf29ec469dd1

まず最初に少しAPIコールを行う各タスクの名前の整理をします。
各APIコールを設定する画面で以下のように名前を記載して保存ボタンを押せばOKです。
image.png
以下のように見やすくなりました。
image.png
Flowの名前も同様に整理できます。
image.png
image.png

Webhookからの起動

このPostman Flows では作成したFlowをWebhookから起動させることが出来ます。
画面左下のWebhookをクリックします。
image.png
Publishを押します。
image.png
Postmanが管理するクラウド領域へFlowがアップロードされます。
image.png

この値をcurlなどで呼び出すとFlowが実行されます。

curl `https://389ef02ffba047e29143f9dba7baaf6f.flow.pstmn.io/`

ブラウザでこのURLを読み込んでも動作しますが2回起動されます。これは暗黙的にブラウザがfavicon.icoを読み込もうとするため、そこに対してもWebhookリクエストが処理されてしまうためです。今回はrequestcatcher.comを使っているので無視しますが、通常のAPI開発を行う場合はfavicon.icoへのアクセスは無視するよう設定を行いましょう。

次にRunボタンを押すと以下のようなダイアログが出てきます。
image.png
そのまま何も入力せずにSendを押すと同様のテストが行えます。
Webhookリクエスト時にJSON Bodyが渡せる様です。早速やってみます。

Webhook.site

今まで使用してきたhttp://requestcatcher.comではJSON Bodyの処理が行えません。ここで、もう一つの神サイトhttps://webhook.site/を使います。
image.png
サイトにアクセスするとこのようにWebhookリクエストを受信可能な一意のURLを作成してくれます。
Postmanの画面でAPIコールの投げ先をrequestcatcher.comからこちらに変更します。
image.png
保存ボタンをちゃんと押してFlowを起動してみます。
以下のようにリクエストが正しく届いていれば正解です。
image.png

ではこれからJSON Bodyの受け渡しの設定を行います。APIコールの設定画面でボディタブからRawを選択し{{test_json}}と入力します。
image.png
保存を押すとFlowの画面が以下のように変わります。
test_jsonという変数が出てきました。(シンプルにするためにもう一つのAPIコール処理は削除していますが、あってもなくても大丈夫です)
image.png
Startからもう一つ線をつないであげます。
image.png
Bodyに以下の値を入力して再度テストを行います。

{
  "event_timestamp": 1703245656262,
  "publish_timestamp": 1703245656262
}

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

Discussion