はじめに
HTTP Requestノードはn8nの万能ツールです。必要なサービスの組み込み統合が存在しない場合、このノードを使えばあらゆるREST APIを直接呼び出せます。GET、POST、PUT、PATCH、DELETE、すべて対応しています。レスポンスが返ってくると、n8nは完全なJSONペイロードを提供し、式を使って必要なフィールドを正確に抽出できます。
このレッスンでは、ノードの設定、リクエストの送信、レスポンス構造の読み取り、特定の値をワークフローの次のステップへ接続するまでの一連のサイクルを順を追って説明します。
HTTP Requestノードの設定
キャンバスにHTTP Requestノードを追加し、最初に3つの項目を入力します。HTTPメソッド、URL、そして認証(APIが必要な場合)です。
認証不要な公開エンドポイントの場合、URLの式フィールドに以下のように記述する最小限のGETになります:
APIキーが必要な場合は、AuthenticationセクションでHeader Authを選択し、ヘッダー名(一般的にはAuthorization)と値(一般的にはBearer YOUR_TOKEN)を設定します。トークンはn8nのCredentialに保存すれば、ノード内にハードコードされません。
POSTリクエストでリソースを作成するなど、JSONボディを送信する必要がある場合は、Body Content TypeをJSONに設定し、Bodyフィールドにペイロードを記述します:
二重波括弧の構文はn8nの式エンジンで、実行時に前段ノードの出力から値を取得します。
レスポンス構造の読み取り
Execute Nodeをクリックすると、n8nは右側のOutputパネルにレスポンスを表示します。すべてのレスポンスでは3つの項目が表示されます:ステータスコード、ヘッダー、ボディ。デフォルトでn8nはJSONボディを自動解析し、構造化データとして返します。これにより、レスポンス内を自由にたどれます。
Open-Meteo APIが以下を返すと仮定します:
Outputパネルでツリーをクリックすると、各ネストされたフィールドを確認できます。この探索ステップは重要です。式を書く前に必ず行い、正確なキーパスを把握しておいてください。
APIがJSON以外のレスポンス(プレーンテキスト、XMLなど)を返す場合は、Return Full Responseオプションを有効にし、Response FormatをTextに変更し、その後で下流のCodeノードで手動解析を行います。
式を使ったデータ抽出
構造がわかれば、下流の任意のノードでn8nの式構文を使ってフィールドを参照します。HTTP Requestの出力のルートには、常にノード名でアクセスできます。
次のノードで上記の例から気温を取得するには:
あるいは、その直後のノード(暗黙の前段ノード)内にいる場合は、簡略記法を使用します:
APIが配列を返す場合(例えば注文のリスト)、レスポンスボディ自体が配列であるか、dataのようなキーの配下にネストされています。これをループ処理するには、HTTP RequestノードをSplit In Batchesノードに接続するか、Item ListsノードをSplit Out Itemsに設定して接続します。これにより、下流の各実行が一度に1つのアイテムを受け取るようになります。
分割せずに3番目のアイテムのidフィールドを直接参照する方法は次のとおりです(ゼロインデックス):
🖥️ [ここに説明図を挿入することを推奨:左側にJSONレスポンスツリー、右側に式参照へのマッピング矢印を示す図]
よくある間違い
Content-Typeヘッダーの欠落は、データをPOSTする際のもっとも頻繁な問題です。Body Content TypeをJSONに設定すれば、n8nが自動的にヘッダーを追加します。Rawに切り替える場合は、手動でヘッダーを追加してください:Content-Typeに値application/jsonを設定します。
もう一つのよくある間違いは、想定より1階層深い場所にあるフィールドを参照しようとすることです。式を書く前に必ずOutputパネルで正確なパスを確認してください。APIレスポンスの形状についての推測は、間違いなく外れることのほうが多くあります。
3つ目の問題はレート制限です。ワークフローが同じAPIに対して頻繁に実行される場合、イテレーション間にWaitノードを追加し、APIドキュメントでレート制限ヘッダー(Retry-After、X-RateLimit-Remaining)を確認してください。n8nはレート制限を自動では処理しません。
まとめ
HTTP Requestノードは3つの動きで構成されます:メソッドとURLを設定し、必要に応じて認証し、オプションのボディを送信します。実行後は、Outputパネルを使ってレスポンスツリーを探索し、node["NodeName"].jsonを使ってノード間アクセスで下流ノードの特定フィールドを参照します。配列レスポンスの場合は、個別処理の前にアイテムを分割します。このサイクルに慣れることで、n8nでほぼすべてのREST APIとの統合が可能になります。
レッスンのチェックポイント
学んだ内容を復習し、回答へのフィードバックを受けましょう。