メインコンテンツまでスキップ
外部 API へ HTTP リクエストを送り、応答をフローに取り込みます。

HTTP Request

HTTP Request は HTTP で外部 API を呼び出すプロセッサーです。

基本的な使い方​

HTTP Request は設定された URL、メソッド、ヘッダー、本文からリクエストを組み立てて送信し、応答を httpResponse 変数に保存します。後続のプロセッサーがそれを利用できます。データ連携、外部サービスとの接続、webhook、外部認証など、他システムとやり取りする場面で使います。

設定項目​

ノードのプロパティパネルです。

HTTP Request のプロパティパネル。URL、Method、Parse JSON、Body、Header

Name​

キャンバス上に表示される名前です。ワークフロー内でこのプロセッサーを識別するために使います。

Description​

このプロセッサーの用途を補足し、ワークフローの読みやすさを高めます。

Properties​

URL(必須)​

リクエストの送信先アドレスです。Literal、Expression、Template の値の種類に対応しています。詳しくはExpression の概要 — 値の取得を参照してください。

Method(必須)​

HTTP メソッドです。GET、POST、PUT、DELETE、PATCH などに対応しています。

Parse JSON(必須)​

JSON 形式の応答を自動で解析するかどうかです。既定は無効です。有効にすると httpResponse オブジェクトに json 項目が追加されます。

Body​

リクエストの本文です。主に POST や PUT で使います。Literal、Expression、Template の値の種類に対応しています。詳しくはExpression の概要 — 値の取得を参照してください。

追加の HTTP リクエストヘッダーです。必要な数だけ追加でき、Authorization や Content-Type がよく使われます。

内部的には、ヘッダーは独立した項目ではありません。このプロセッサーは url、method、body、parseJson 以外のすべての config キーを HTTP ヘッダーとして送信し、ヘッダー名はキーそのものになります。Workflow CRD では次のように書きます。

- name: url
value: "https://api.sendgrid.com/v3/mail/send"
- name: method
value: POST
- name: parseJson
value: "false"
- name: Content-Type
value: application/json
- name: Authorization
expression: '"Bearer " + vars.sendgridApiKey'

つまりヘッダーの値も他の config と同様に Expression に対応しており、キーをワークフローの変数に置いてここで組み立てられます。設定に直書きする必要はありません。

接続関係​

Success​

応答のステータスコードが 200 のとき、この接続点から次へ進みます。次の項目を持つ httpResponse 変数が生成されます。

項目型説明
statusCodenumberHTTP のステータスコード
bodystring応答の本文(生の文字列)
jsonobject解析済みの JSON オブジェクト(Parse JSON が有効なとき)
headersobject応答ヘッダー

Failure​

リクエストが失敗した場合(200 以外のステータス)やネットワークエラーが起きた場合、この接続点から続き、prevError 変数にエラー情報が入ります。

出力:httpResponse​

成功すると応答は httpResponse という固定名の変数に入ります(名前は変更できません)。常に 3 つのフィールドがあります。

フィールド内容
httpResponse.statusCodeHTTP ステータスコード
httpResponse.body応答本文(文字列そのまま)
httpResponse.headers応答ヘッダー

Parse JSON がオンのときは httpResponse.json が加わり、body を解析したオブジェクトが入ります。

実際の例​

ユーザーが入力した番号で ToDo を 1 件引き、タイトルを返します。

項目値
URLExpression:'https://dummyjson.com/todos/' + prevMessage
MethodGET
Parse JSONオン

後ろに置く Push Message では、Message に Expression で httpResponse.json.todo を指定します。

POST の場合は Method を POST にし、Body を Expression で組み立て(例:JSON.stringify({ name: userName }))、Header に Content-Type: application/json を追加します。

注意事項​

  • URL にはプロトコル(http:// または https://)が必要です。
  • 応答のステータスコードが 400 以上のときは Failure に進み、ステータスと内容がエラーに入ります。
  • Parse JSON がオンでも、body の解析に失敗したことは失敗ではありません。ノードは Success に進み、httpResponse.json が存在しないだけです。使う前に存在を確認してください。
  • Body と Header はどちらも Expression に対応し、フロー内の変数をリクエストに載せられます。