云工作流允許通過Operation狀態調用HTTP服務,functionRef.type固定為HTTP,actionExecuteMode可選擇RequestComplete或WaitForTaskToken(僅適用標準工作流)。
參數配置
HTTP任務的參數配置如下表所示,涵蓋必填和可選字段:
| 參數名稱 | 是否必選 | 參數說明 | 示例值 |
|---|---|---|---|
| url | 是 | 請求的URL地址,必須包含協議部分(如//),需確保公網可訪問,否則調用失敗。 | //www.example.com |
| method | 是 | HTTP請求方法,支持GET、POST、PATCH、PUT、DELETE、HEAD。 | GET |
| body | 否 | 請求體內容,需要為鍵值對。 | body: name: xxx |
| headers | 否 | HTTP請求頭,鍵值對形式,用于設置如User-Agent、Authorization等。 | headers: key1: value1 |
| query | 否 | 請求query內容,鍵值對形式 | query: key1: value1 |
示例代碼與解析
提供的示例代碼片段如下,展示了一個典型的HTTP集成工作流:
specVersion: "0.8"
version: "1.0"
name: "test"
start: "FetchMyIp"
states:
- name: "FetchMyIp"
type: "Operation"
actions:
- functionRef:
type: "Http"
arguments:
url: "//www.example.com"
query:
id: "2"
offset: "1"
req_type: "1"
headers:
User-Agent: "apifox"
actionExecuteMode: "RequestComplete"
stateDataFilter:
output: "{ $.Body }"
end: true
代碼解析:
type:固定為
Operation,標識這是一個Operation狀態。functionRef.type:固定為
Http,標識這是一個Http集成。actionExecuteMode:示例使用
RequestComplete,表示同步執行,等待HTTP響應后繼續流程。另支持WaitForTaskToken模式,用于標準工作流的異步場景。functionRef.arguments:Http請求參數。
返回值說明
HTTP請求的返回結果會被包裝為JSON對象,結構如下:
{
"Header": {
"Content-Type": "application/json;charset=UTF-8",
"Access-Control-Allow-Methods": "GET,POST,OPTIONS"
},
"Code": 200,
"Body": "hello world"
}Header:響應頭部信息,如內容類型、允許方法等。
Code:HTTP狀態碼,如200表示成功,404表示資源未找到。
Body:響應正文,可能是字符串或JSON數據,依服務返回而定。
后續狀態可通過json路徑(如{ $.Body })訪問這些字段,用于條件判斷或數據處理,詳見數據傳遞文檔。
執行模式
云工作流HTTP集成支持兩種執行模式,具體如下:
RequestComplete:
定義:發起HTTP調用后,當前任務完成,輸出為HTTP服務器的返回數據。
特點:同步執行,適合需要立即獲取結果的場景。
適用場景:實時數據獲取、API查詢。
示例中采用此模式,GET請求后直接結束。
WaitForTaskToken:
定義:發起HTTP調用后,流程暫停,等待外部系統通過回調恢復執行。
特點:異步模式,依賴任務令牌(taskToken)實現回調。
工作原理:調用時,任務令牌通過
{ $Context.taskToken }獲取。外部服務需調用ReportTaskSucceeded或ReportTaskFailed接口,攜帶令牌和狀態,觸發流程繼續。適用場景:需要外部系統異步處理,如審批流程、長任務執行。
注意:用戶需確保外部服務支持回調機制,流程掛起期間需監控任務狀態。