歷史版本更新
請求類型為POST時,「請求參數」支援傳入XML格式資料
對於GET與POST請求,支援匯出XML格式資料,支援預覽XML回應結果
API 配置中的 body 請求內容支援使用 Content-Type 為 form-data 和 x-www-form-urlencoded 請求格式,
允許新增多行、每行均為自訂輸入、支援引用參數
當 API 配置了 https 時,支援自簽章證件
支援控制 API 呼叫頻率
使用者希望取出 API 資料後做進一步的資料處理再儲存,此時,資料同步-API 不能滿足需求。
「資料轉換」節點中新增「API 輸入」算子,使用「API 輸入」算子API取數後,可繼續使用其他算子對API資料進行處理。如下圖所示:
注1:若API回傳值為較簡單的 JSON 格式,不需要複雜的解析處理,可直接使用 資料同步-API 進行API取數。
注2:「API 輸入」算子從 API API取數時,可使用參數,參數值可為動態,參數使用的位置請參見本文第四章說明,具體範例請參見本文第五章說明。
1)關於 API API資訊介紹,詳情參見:API入門
2)在使用 API API進行取數時,可以提前用 Postman 或者其他 API 除錯工具進行測試,確定 API 的可用性。如下圖所示:
3)需要註冊「API協定(定時)」功能點。
1)當前 FDL 內建請求逾時時間是 10s,如果 API 查詢傳回時間超過 10s 將導致任務失敗。
若使用者的資料量較大,API請求時間較長,4.0.13 及之後版本的 FDL API取數時可以在 Header 內使用 FDLTimeout 欄位增大逾時時間。
需注意參數名稱為FDLTimeout,使用者不能自訂參數名的大小寫(參數名大小寫敏感);參數值需要寫入正整數,且單位為秒(s)。如下圖所示:
注:若資料量較大,JSON 格式資料建議取消勾選「將解析後的JSON資料展開為二維表」,否則會增載入入回應時間。
2)API API取數時,可以在「回傳值處理」設定項中對 JSON 資料進行解析,但對比 JSON解析算子 ,功能上有一定限制,如下表所示:
1)JSON解析算子 中可一次性解析多個欄位,回傳值處理設定項中只能解析一個欄位
2)回傳值處理設定項中若勾選「將解析後的JSON資料展開為二維表」,將只能解析一層路徑;JSON解析算子 可以解析多層路徑
所以,若API回傳值為較簡單的 JSON 格式,不需要複雜的解析處理,可在回傳值處理設定項中進行解析;否則,建議使用 JSON解析算子 進行解析。
3)若 URL 中的參數值包含[],需要使用 encodeURIComponent 編碼後再填入,否則會呼叫API失敗。
API 取數時,設定介面如下圖所示:
注1:從 API API取出的資料,可匯出為參數(使用參數匯出、參數指派節點、全局參數-指派參數);或匯出到資料庫、API、簡道雲、檔案系統等位置中。
注2:API API取數時,當 API 使用了 https ,可以取消證件有效性驗證;在 Headers 內新增一個參數,參數名為SSL-certificate-verification,值為 false 即可。詳情請參見:注意事項
請求方法
FDL 支援 GET 和 POST 兩種請求方式。關於 API API說明詳情參見:API入門
API地址
請求參數
URL 傳參(Query參數)
可手動新增參數,填寫參數名、參數值
也可以直接在URL後新增參數。例如:
無認證(預設)
Bearer Token:在輸入框中輸入 token 驗證
Basic Auth:輸入帳號和密碼驗證
其他認證:將Authorization選項原樣put 命令、且支援參數輸入
支援 application/x-www-form-urlencoded、application/json、application/xml、multipart/form-data、text/xml、text/plain 請求格式
允許使用者在 Headers 內對 Content-Type 進行自訂設定,即 Content-Type 的下拉框支援輸入非下拉列表值
Body與Content-Type雙向聯動
如果輸入 Content-Type 不在聯動列表內,則 Body 內格式在改變 Content-Type 前不發生變化
如果使用者輸入不在列表內的 Content-Type 後,再修改Body的格式,則自動改寫Headers內的Content-Type為聯動值
注:選擇POST請求方式時展示此選項
Body中支援格式選擇,TEXT、JSON、XML
body 內容寫法如下:
GET 方法:abc=1&def=1
POST 方法:JSON 類型參數
格式為:GET:"a=123&b=456" POST:{"a":123,"b"=456}
當 API配置了 https 時,支援自簽章證件
配置自簽章證件後,當進行 https 請求時,按照 SSL/TLS 協定進行請求處理
注:支援.p12、.jks的檔案類型
為空預設解析首層節點,可用「$.父節點.子節點」的格式自訂解析層級,例如: 一層:$.store;兩層:$.store.book
詳情請參見本文 4.2 節內容
呼叫頻率控制
應用場景:
有的API限制了呼叫頻率,比如有API一分鐘只能呼叫 3 次,超過這個限制本次執行實體會等待
設定「呼叫頻率控制」為每分鐘執行 3 次,分頁取數時,若頁數為 6 頁,第一分鐘的前幾秒呼叫 3 次 API 取前 3 頁資料,等第二分鐘到來後,再呼叫 3 次取最後 3 頁資料
功能說明:
在一個任務實體中,分頁取數多次呼叫 API 受「呼叫頻率控制」控制
控制頻率:秒/分鐘/小時/天
例如控制呼叫頻率為 1 分鐘一次,則任務執行後可以看到日誌,API 一分鐘呼叫一次:
指定回應資料字元編碼方式
支援 UTF-8、UTF-16、GBK 三種方式
將按照字元編碼方式解析 API 回應資料
API資料回傳值如果是 JSON 格式,想要取出指定的 JSON 陣列,可以使用「回傳值處理」直接解析 JSON 資料。
資料類型轉換列表:
以 https://fine-build.oss-cn-shanghai.aliyuncs.com/finedata/doc/book.json 為例。
API 取數預設傳回的結果將包括所有物件,同時解析首層的節點
即傳回 store、store.book、store.bicycle、store.bicycle.color、store.bicycle.price 資料。
可以填寫自訂的 JSON 路徑控制只傳回結果中的單個 JSON 物件或者 JSON 陣列
使用「父節點.子節點」的格式自訂解析層級,例如: 一層:store;兩層:store.book;三層:store.book.author
例如想要取出 store 物件中 book 陣列資料,可以在路徑中輸入:$.store.book,可以獲取到 book 陣列下的所有資料,如下圖所示:
例如想要取出 store 物件中的資料,可以在路徑中輸入:$.store,可以獲取到 store 物件下的首層節點的資料:book、bicycle、bicycle.color、bicycle.price,如下圖所示:
更多 JSON 解析運算式詳情參見:JSONPath運算式
API API取數時,支援引用參數的設定項為:
Bearer Token:Token值支援引用參數
其他認證:Authorization 值支援引用參數
API資料匯出為參數說明如下表所示:
參數指派節點、全局參數-指派參數適用場景:
1)API回傳值為較簡單的 JSON 格式,不需要複雜的解析處理
2)全局參數-指派參數與參數指派節點差別:全局參數-指派參數匯出的參數,可供多個定時任務使用;參數指派節點匯出的參數,只能供參數指派節點的下游節點使用
參數匯出算子適用場景:
1)API取數後,資料需要進行復雜處理後,再匯出為參數
2)一般情況下使用流程:
先使用「API 輸入」算子將API資料取出
使用「JSON解析」算子/「XML解析算子」算子對API資料進行解析
再使用其他算子對解析後的資料進行處理
最後使用「參數匯出」算子匯出為參數
範例參考:
API取數-獲取企業微信人員資訊 文檔的第一章到 2.2 節內容
API取數時引用參數說明:使用參數
1)無論是API取數時引用參數,或者API資料匯出為參數,都建議參數設定預設值,便於引用參數的節點/算子查看效果;若參數值動態變化(例如每個參數值只能生效 2 分鐘),除錯任務時,想查看參數引用效果需要更新參數預設值。
注:定時任務每次運作都會獲取最新參數值來執行。
2)呼叫API時使用參數:
若參數存在空值,呼叫API將獲取不到資料,所有在呼叫API前,需要過濾掉空值。
需要的參數可能需要加密,建議使用 SparkSQL編碼、加密、解密函式 實現
若需要動態生成簽章值,建議使用「Spark SQL」算子,或使用函式將對應的值連結出來(SQL 腳本、新增計算列等)。
API 取數使用說明請參見:API取數使用說明
API 取數功能所有範例參考:API採集資料專題
滑鼠選中內容,快速回饋問題
滑鼠選中存在疑惑的內容,即可快速回饋問題,我們將會跟進處理。
不再提示
10s後關閉
反馈已提交
网络繁忙