跳至主要内容

REFERENCE

開發者參考

認證、API、SDK、Flow Agent 處理節點與參數取值的完整參考。

HTTP Request

對外部 API 發 HTTP 請求,把回應接進流程。

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

  1. 基本用法​

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

  2. 配置參數​

    節點的屬性面板:

    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,可以把金鑰放在工作流程變數裡再組出來,不必寫死在設定中。

  3. 連接關係​

    Success​

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

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

    Failure​

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

  4. 輸出:httpResponse​

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

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

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

  5. 一個實際的例子​

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

    欄位值
    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。

  6. 注意事項​

    • URL 要帶完整協定(http:// 或 https://)。
    • 回應狀態碼 400 以上走 Failure,錯誤裡帶狀態碼與內容。
    • 開啟 Parse JSON 時,body 解析失敗不算失敗:節點照樣走 Success,只是 httpResponse.json 不存在。用之前要先確認它在,不要假設。
    • Body 和 Header 都支援 Expression,可以把流程裡的變數帶進請求。

準備好開始了嗎?

想知道 Asgard 怎麼用在你的團隊?跟我們聊聊。

聯絡我們