コンテンツにスキップ

http requestノード

http requestノード

概要

http requestノードは、指定したURLに対してHTTPリクエストを送信し、外部サービスやWeb APIからレスポンスを取得するためのノードです。

ロボシュタインでは、監視ツール、チケット管理ツール、社内システム、外部API、Webサイトなどと連携する際に使用します。

例えば、Webサイトの応答確認、外部APIからの情報取得、インシデント管理ツールへのチケット登録、社内システムへのデータ送信などで利用できます。

http requestノード設定画面

具体的な活用例(外部APIから情報を取得する)

外部APIへリクエストを送信し、取得した結果を後続ノードで利用する例です。

フローのイメージ図

http requestノードのフローイメージ

① http requestノードで外部APIへリクエストを送信する

http requestノードに、リクエスト先のURLとメソッドを設定します。

例:

  • メソッド:GET
  • URL:https://example.com/api/status
  • 出力形式:JSONオブジェクト

この設定により、指定したURLへGETリクエストを送信し、APIからのレスポンスを取得します。

② 取得結果を後続ノードで利用する

http requestノードの実行後、レスポンス本文は msg.payload に、HTTPステータスコードは msg.statusCode に格納されます。

例えば、後続のswitchノードで以下のように分岐できます。

  • msg.statusCode が 200 → 正常処理
  • msg.statusCode が 200 以外 → 異常処理

このように、http requestノードは外部サービスの結果を取得し、後続の分岐・通知・登録処理へつなげる役割を持ちます。

設定項目一覧

必須 項目名 説明
◯ メソッド HTTPリクエストの種類を指定します。GET、POST、PUT、DELETE、HEAD、「- msg.methodに定義 -」から選択できます。
◯ URL リクエストを送信するURLを指定します。空欄にした場合は msg.url の値を使用します。
ペイロード メソッドがGETの場合に、msg.payload をどのように扱うかを指定します。メソッドが「GET」の場合のみ表示されます。
SSL/TLS接続を有効化 クライアント証明書の利用など、HTTPS通信の詳細な設定が必要な場合にチェックし、TLS設定を選択します。通常のHTTPS通信ではチェック不要です。
認証を使用 Basic認証、Digest認証、Bearer認証を使用する場合にチェックし、種別と認証情報を設定します。
コネクションkeep-aliveを有効化 HTTP接続を維持する場合にチェックします。通常は必要な場合のみ有効にします。
プロキシを使用 プロキシサーバー経由で通信する場合にチェックし、プロキシ設定を選択します。
2xx以外の応答をcatchノードへ送信 通信エラー(接続先が見つからない、タイムアウトなど)が発生した場合に、後続ノードへはメッセージを渡さず、catchノードにのみエラーを送ります。名称に反して、ステータスコード 404 や 500 などの応答はcatchノードへは送られず、通常どおり後続ノードへ渡されます。
厳密なHTTPパース処理を無効化 通常は使用しません。接続先のHTTPレスポンスが仕様に厳密に従っておらず、正しく受信できない場合のみ使用します。
◯ 出力形式 レスポンスをどの形式で受け取るかを指定します。
ヘッダ リクエスト時に付与するHTTPヘッダーを設定します。「追加」ボタンで複数設定できます。
名前 フローエディター上で表示されるノード名を任意で指定できます。

メソッドについて

メソッドでは、HTTPリクエストの種類を指定します。

メソッド 主な用途
GET 情報を取得する場合に使用します。
POST データを登録・送信する場合に使用します。
PUT データを更新する場合に使用します。
DELETE データを削除する場合に使用します。
HEAD ヘッダー情報のみ確認したい場合に使用します。
- msg.methodに定義 - msg.method の値("PUT" など)を使用して、実行時にメソッドを指定します。

通常、APIから情報を取得する場合はGETを使用します。外部システムへデータを登録する場合はPOSTを使用することが多いです。

URLについて

URLには、リクエストを送信する接続先を指定します。

例:https://example.com/api/status

URL欄を空にした場合は、前のノードから渡された msg.url を使用できます。

また、URL内に msg の値を埋め込みたい場合は、{{ }} を使用できます。

例:

https://example.com/api/servers/{{serverId}}

この場合、msg.serverId の値をURL内に埋め込んでリクエストを送信できます。

ペイロードについて

メソッドがGETの場合、msg.payload をどのように扱うかを指定できます。

設定 内容
無視 msg.payload をリクエストに使用しません。
クエリパラメータに追加 msg.payload の内容をURLのクエリパラメータとして付与します。例えば msg.payload が {"a":1} の場合、URLの末尾に ?a=1 が付与されます。
リクエストボディとして送信 msg.payload をリクエスト本文として送信します。

通常のGETリクエストでは、「無視」または「クエリパラメータに追加」を使用します。

POSTやPUTなどのGET以外のメソッドでは、この設定は表示されず、msg.payload がリクエスト本文として送信されます。msg.payload がオブジェクトの場合は、JSON形式(Content-Type: application/json)で送信されます。

出力形式について

出力形式では、レスポンスをどの形式で受け取るかを指定します。

出力形式 内容
UTF8文字列 レスポンスを文字列として受け取ります。HTMLやテキストを取得する場合に使用します。
バイナリバッファ レスポンスをバイナリデータとして受け取ります。ファイルや画像などを扱う場合に使用します。
JSONオブジェクト レスポンスをJSONとして解析し、オブジェクトとして受け取ります。API連携でよく使用します。

APIからJSON形式のレスポンスを取得する場合は、「JSONオブジェクト」を選択すると、後続ノードで値を扱いやすくなります。

「JSONオブジェクト」を選択していても、レスポンスがJSON形式でない場合は、「JSONの構文解析エラー」という警告がデバッグタブに表示され、msg.payload には取得した文字列がそのまま格納されます。

ヘッダについて

ヘッダでは、リクエスト時に付与するHTTPヘッダーを設定します。 API連携では、認証情報や送信データ形式を指定するために使用することがあります。

ヘッダー名 設定例 用途
Content-Type application/json 送信データがJSON形式であることを示します。
Accept application/json JSON形式のレスポンスを受け取りたい場合に使用します。
Authorization Bearer xxxxx Bearerトークン認証などで使用します。
User-Agent Mozilla/5.0 接続先によって必要な場合に使用します。

認証情報をヘッダーに設定する場合は、実際の値が画面キャプチャや資料に残らないよう注意してください。

認証について

接続先のAPIやWebサイトで認証が必要な場合は、「認証を使用」にチェックを入れ、種別を選択します。

種別 内容
Basic認証 ユーザ名とパスワードを使用する認証方式です。
Digest認証 Digest認証を使用する場合に選択します。
Bearer認証 Bearerトークンを使用する認証方式です。API連携で使用することがあります。

Bearer認証を使用する場合は、トークンを設定します。トークンやパスワードは機密情報のため、取り扱いに注意してください。

出力される主なデータ

http requestノードの実行後、後続ノードには主に以下の値が渡されます。

プロパティ 内容
msg.payload レスポンス本文が格納されます。
msg.statusCode HTTPステータスコードが格納されます。
msg.headers レスポンスヘッダーが格納されます。
msg.responseUrl 実際にレスポンスを受け取ったURLが格納されます。リダイレクトされた場合は、リダイレクト先のURLになります。
msg.responseCookies レスポンスにCookieが含まれる場合に格納されます。
msg.redirectList リダイレクトが発生した場合、その情報が格納されます。

APIの処理結果を判定する場合は、msg.payload だけでなく msg.statusCode も確認してください。

利用例

例1:Webサイトの応答を確認する

指定したWebサイトにGETリクエストを送信し、正常に応答が返るか確認します。

例1:Webサイトの応答を確認する

  • メソッド:GET
  • URL:https://example.com/
  • 出力形式:UTF8文字列

後続のswitchノードで msg.statusCode を確認することで、正常・異常を判定できます。

例2:外部APIからJSONを取得する

外部APIへGETリクエストを送信し、JSON形式のレスポンスを取得します。

例2:外部APIからJSONを取得する

  • メソッド:GET
  • URL:https://example.com/api/status
  • 出力形式:JSONオブジェクト

レスポンスがJSONオブジェクトとして取得できるため、後続ノードで msg.payload.status などを参照できます。

例3:APIへデータを送信する

外部システムへPOSTリクエストを送信し、データを登録します。

例3:APIへデータを送信する

  • メソッド:POST
  • URL:https://example.com/api/tickets
  • ヘッダ:Content-Type = application/json

送信データは、前段のchangeノードやfunctionノードなどで msg.payload に設定します。

{
  "title": "サーバーアラートを検知しました",
  "description": "server01でCPU使用率の異常を検知しました。",
  "priority": "high"
}

このように設定することで、http requestノードから外部APIへデータを送信できます。

例4:HTTPステータスコードで処理を分岐する

http requestノードの後ろにswitchノードを接続し、HTTPステータスコードで処理を分岐します。

例4:HTTPステータスコードで処理を分岐する

分岐例:

  • msg.statusCode が 200 → 正常処理
  • msg.statusCode が 400以上 → エラー処理

APIの成功・失敗を判定したい場合は、レスポンス本文だけでなく、HTTPステータスコードも確認してください。

注意点

URLの指定ミスに注意する

URLが空の場合や、接続できないURLを指定した場合、リクエストは正常に実行されません。 固定URLを指定する場合は、誤字や不要な空白がないか確認してください。動的にURLを指定する場合は、実行時に設定される値が正しいか確認してください。

出力形式に注意する

出力形式に「JSONオブジェクト」を指定している場合でも、レスポンスがJSON形式でないと正しく解析できず、文字列のまま出力されます。 JSON形式ではないレスポンスを取得する場合は、「UTF8文字列」を選択してください。

POSTやPUTでは msg.payload の内容に注意する

POSTやPUTでデータを送信する場合、msg.payload の内容がリクエスト本文として送信されます。 送信前に、想定した形式になっているか確認してください。

認証情報の取り扱いに注意する

Basic認証、Bearerトークン、Authorizationヘッダーなどには、機密情報が含まれる場合があります。 認証情報を含む画面キャプチャをマニュアルや社内資料に掲載する場合は、必ずマスキングしてください。

HTTPステータスコードと通信エラーは分けて考える

HTTPステータスコードが 404 や 500 の場合でも、接続先からレスポンスが返っている場合はエラーにはならず、通常どおり後続ノードへメッセージが渡されます。 そのため、「APIが正常に成功したか」を判断したい場合は、switchノードで msg.statusCode の値を確認してください。

通信エラー時の扱いに注意する

接続先に到達できない場合やタイムアウトした場合は、通信エラーになります。 通信エラーが発生すると、エラーがcatchノードで検知されると同時に、後続ノードにもメッセージが渡されます。このとき msg.statusCode には "ENOTFOUND" のようなエラーコード(文字列)が、msg.payload にはエラーメッセージが格納されます。 後続ノードへは渡さず、catchノードだけでエラーを処理したい場合は、「2xx以外の応答をcatchノードへ送信」にチェックを入れてください。 エラー内容をフロー内で扱いたい場合は、catchノードと組み合わせて確認してください。

関連ノード

  • injectノード:手動実行や定期実行の起点として使用します。
  • changeノード:リクエスト前に msg.payload や必要な値を整える場合に使用します。
  • switchノード:msg.statusCode や msg.payload の値をもとに処理を分岐する場合に使用します。
  • templateノード:APIレスポンスを通知文やメール本文に整形する場合に使用します。
  • functionノード:API送信前後に複雑なデータ加工を行う場合に使用します。
  • debugノード:http requestノードで取得したレスポンス内容を確認する場合に使用します。
  • catchノード:通信エラーやタイムアウトなどを検知する場合に使用します。

まとめ

http requestノードは、外部のWebサイトやAPIへHTTPリクエストを送信し、レスポンスを取得するためのノードです。

監視運用では、Webサイトの応答確認、外部APIからの情報取得、チケット管理ツールへの登録、社内システムとの連携などで活用できます。

取得したレスポンスは、msg.payload、msg.statusCode、msg.headers などに格納されます。

後続のswitchノードやtemplateノードと組み合わせることで、取得結果に応じた分岐や通知を行うことができます。


解説動画

基礎編

API取得編

HTMLパース編