跳至主要内容
對外部 API 發 HTTP 請求,把回應接進流程。

HTTP Request

HTTP Request 是用於透過 HTTP 請求呼叫外部 API 的 processor。

基本用法​

執行 HTTP Request 時,會依據設定的 URL、HTTP 方法、請求標頭和內容發送請求,並將回應結果儲存到 httpResponse 變數中供後續 processor 使用。適用於資料整合、第三方服務串接、Webhook 觸發、外部驗證等需要與外部系統互動的場景。

配置參數​

節點的屬性面板:

HTTP Request 的屬性面板:URL、Method、Parse JSON、Body、Header

Name​

顯示在畫布上的名稱,用於在工作流程中識別此 processor。

Description​

用於補充此 processor 的用途,提升工作流程的可讀性。

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 等設定。

標頭在底層不是一個獨立欄位。這個 processor 會把所有不是 url、method、body、parseJson 的 config key 當成 HTTP 標頭送出,標頭名稱就是 key 本身。直接撰寫 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​

當 HTTP 請求的回應狀態碼為 200 時,工作流程會從此連接點繼續執行。會產生 httpResponse 變數包含以下欄位:

欄位類型說明
statusCodenumberHTTP 狀態碼
bodystring回應內容(原始字串)
jsonobject解析後的 JSON 物件(當 Parse JSON 開啟時)
headersobject回應標頭物件

Failure​

當 HTTP 請求失敗(非 200 狀態碼)或發生網路錯誤時,工作流程會從此連接點繼續執行,並產生 prevError 變數儲存錯誤資訊。

輸出:httpResponse​

請求成功之後,回應放在固定名稱的 httpResponse 變數裡(這個名字不能改),內容永遠有三個欄位:

欄位內容
httpResponse.statusCodeHTTP 狀態碼
httpResponse.body回應本文,字串原樣
httpResponse.headers回應標頭

開啟 Parse JSON 時會多一個 httpResponse.json,是 body 解析後的物件。

一個實際的例子​

用使用者輸入的編號去查一筆待辦事項,再把標題回給他。

欄位值
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,可以把流程裡的變數帶進請求。