最新历史版本 :資料接收-通用API接收 返回文檔
編輯時間: 內容長度:图片数:目录数: 修改原因:

icon提示:

4.2.18.1 之前工程,請參考:歷史文檔

目錄:

1. 概述编辑

1.1 版本

FineDataLink 版本功能變動
5.0.11.1發佈和呼叫通用 API 接收API時,流程重構

1.2 應用場景

使用者希望 FineDataLink 提供一個API,業務系統呼叫後將資料實時地新增/更新到目標端,且資料寫入前可對資料進行處理 。

1.3 功能簡介

1)資料服務功能中,發佈一個 API:

2)與實時任務中的「Webhook輸入」算子聯合使用,實現呼叫API後對資料進行處理再輸出的效果。如下圖所示:

注:可呼叫資料接收 API 插入/更新資料,暫不支援刪除資料。

1.4 前提條件

需要註冊API協定(實時)功能點、資料服務基礎包功能點、實時任務相關功能點

2. 傳輸佇列類型說明编辑

資料接收功能初版要求部署 Kafka、配置傳輸佇列,增加了使用成本。4.2.11.2 及之後版本,資料接收功能可對接記憶體佇列,無需部署 Kafka。

因此使用資料接收功能的使用者可根據實際情況,選擇是否部署 Kafka、配置傳輸佇列。詳細說明見下方表格:

傳輸佇列類型說明

記憶體佇列(無需部署 Kafka、配置傳輸佇列)

4.2.11.2 及之後版本,才支援選擇

應用場景:

試用資料接收功能,驗證整體的接收寫入主流程能否滿足自己的訴求

優勢:

  • 無需部署 Kafka、配置傳輸佇列,使用成本較低

劣勢:

  • 不支援 3.2.3 節中的「等待入庫結果功能,即收到請求後不會持久化儲存,直接嘗試入庫並傳回結果

  • 4.2.17.5 之前版本,寫入失敗時,請求詳情處為空

訊息佇列中間軟體(需部署 Kafka、配置傳輸佇列)

4.2.11.2 之前版本,必須部署 Kafka、配置傳輸佇列

叢集工程,資料服務功能中必須開啟「訊息佇列中間軟體」按鈕

應用場景:

使用者使用量上升,對於資料安全性,效能有了更高的要求,希望能夠追溯異常資料,並能夠在接收到資料後非同步處理寫入以提升API效能

優勢

  • 支援 3.2.3 節中的「等待入庫結果」功能,收到請求後會將先將資料持久化到 Kafka,根據使用者配置情況,傳回快取結果或傳回入庫結果

  • 寫入失敗時,支援查看請求

劣勢:

  • 需要部署 Kafka、配置傳輸佇列,使用成本較高

2.1 使用記憶體佇列

資料服務模組中,點選「服務設定」按鈕,關閉「訊息佇列中間軟體按鈕。如下圖所示:

  • 下載 4.2.11.2 及之後版本的安裝包,新部署的 FDL 工程,該按鈕預設關閉。

  • 若工程之前未配置過傳輸佇列,升級到 4.2.11.2 及之後版本,該按鈕預設關閉。

  • 使用者開啟「訊息佇列中間軟體按鈕,安裝 Kafka 配置傳輸佇列後,需要重啟 FineDataLink 工程。

2.2 使用訊息佇列中間軟體

1)需要部署 Kafka。詳情請參見:部署Kafka:KRaft模式

2)資料服務模組中,點選「服務設定」按鈕,開啟「訊息佇列中間軟體按鈕,配置 傳輸佇列。如下圖所示:

注:下圖和 快取配置 文檔中修改的是同一份配置,只不過 FineDataLink 提供了兩個入口(任選一個入口修改即可)。

  • 若工程之前配置過傳輸佇列,升級到 4.2.11.2 及之後版本,該按鈕預設開啟。

  • 若關閉「訊息佇列中間軟體按鈕,需要重啟 FineDataLink 工程。

  • 若後面切換 Kafka,需要手動處理 offset 。具體步驟請參見:切換 Kafka

3. 操作步驟编辑

3.1 場景模擬

使用者需要接收外部 SaaS 應用的資料,將資料寫入資料庫中存檔,且上游無刪除事件 。

3.2 建立資料接收API

進入 FDL 工程,點選「資料服務」,建立一個資料接收 API 。如下圖所示:

3.3 配置資料接收 API

3.3.1 基礎屬性

設定項
說明
請求方式只支援選擇 POST
API路徑
配置要發佈的API路徑。

API路徑不允許重複。

預設為空,支援指定英文、數字、底線(_)、連字元(-)、正斜槓(/);不支援以正斜槓(/)開頭和結尾

例如以下完整的API請求路徑範例:

http://192.168.5.175:8089/webroot/service/publish/應用ID/demo

注1:service前的部分為發佈API所在的當前 FineDataLink 伺服器地址

注2:應用ID是API被綁定應用的ID,詳情參見綁定API至應用

逾時時間
填寫回應逾時時間,如果在指定時間後仍沒有傳回查詢結果,則API傳回逾時錯誤

預設10000ms,必填

綁定應用

API 若想被呼叫必須綁定應用

1)使用者可在建立API時將其新增到某個應用上

點選「新增按鈕,可將 API 綁定到已有應用上;點選「新增按鈕後,可再點選「去建立按鈕建立應用,將該 API 綁定在建立應用上

2)或者建立 API 後,在應用列表Tab下,將 API 綁定在應用上,具體說明請參見:綁定API至應用

綁定應用後,可複製完整存取路徑

3.3.2 API請求

注:Query 禁用。

設定項
說明
請求 Body 格式
只支援 application/json
Body 整體綁定

預設開啟且禁止關閉

3.3.3 API回應

46.png

1)展示呼叫 API 後傳回的資料格式(JSON 格式)。

2)反映異常資訊按鈕:

  • 勾選:API異常資訊將反映在 HTTP 狀態碼上。

  • 不勾選:HTTP 狀態碼僅傳回 200 或 404。

3)支援使用者自動調整傳回的資料格式;點選快捷生成按鈕,下拉框中可選擇自動生成按JSON範本生成,詳細說明請參見:JSON生成 文檔

4)點選「測試呼叫」按鈕,調整 Body 值,會觸發資料庫實際執行操作;測試呼叫時,會校驗傳輸佇列是否配置成功,若未配置,無法使用測試呼叫功能。


3.3.4 進階配置


資料寫入有兩個程式:接收到資料後先把資料存入到 Kafka,再把 Kafka 中的資料進行寫入。

注:「訊息佇列中間軟體」按鈕關閉時,不支援該功能。

按鈕狀態
說明
開啟

呼叫發佈的 API 時,監視資料是否透過該API入庫成功:

API API將先進行資料快取,等待資料入庫操作完成後,傳回入庫結果

注:簡道雲逾時時間很短僅有 5 秒,該按鈕開啟後會等待較長時間,一般情況下建議關閉該按鈕

關閉

接收到資料且資料快取進 Kafka 後進行通知,監視資料是否透過該API推播成功:

  • API API將直接傳回資料快取結果,再執行資料入庫操

  • 資料入庫是否成功的結果不進行傳回


3.4 API 詳情頁

點選「儲存」按鈕後進入 API 詳情頁。

該API在實時任務的「Webhook輸入」算子中用到後,API狀態自動更改為上線;實時任務運作失敗,API狀態自動更改為未上線。


3.5 綁定 API 至應用

API 若想被呼叫必須綁定應用。

使用者可在本文 3.3 節步驟中給 API 綁定應用,或者 3.4 節結束後,參考 綁定API至應用 給 API 綁定應用。

3.6 建立實時任務

icon提示:

資料接收 API 與實時任務配合使用時,僅支援資料的新增和更新(若想實現更新,寫入時需要配置主鍵)。

1)建立一個實時任務。

2)實時任務中拖入「Webhook輸入」算子,呼叫 2.2 節發佈的 API,樣本設定處填寫API的JSON請求體(便於在後續節點中查看效果),如下圖所示:

設定項
說明
服務名稱

下拉框中顯示有權限的,服務接收方式為「僅配置地址」的 API 

樣本設定可填寫呼叫該 API 時的 JSON 請求體,便於繼續後續的資料處理流程以及在後續節點中預覽處理效果
測試服務
功能同 資料接收 中的測試呼叫效果 

可填入API請求,呼叫API;此處會實際呼叫API寫入資料

點選「資料預覽」,如下圖所示:

3)拖入「JSON解析」算子,對呼叫 API 後獲取的資料進行解析。如下圖所示:

點選「資料預覽」,如下圖所示:

4)拖入「資料過濾」算子,對資料進行過濾。如下圖所示:

5)拖入一個匯出算子,將資料匯出,啟動該實時任務。

注:如果需要實現資料的更新,需要在目標端設定主鍵。

3.7 效果查看

本文的場景是:使用者需要接收外部 SaaS 應用的資料,將資料寫入資料庫中存檔,且上游無刪除事件。

所以需要將 API 地址複製到 SaaS 應用的 URL 地址框中,便於接收上游新增和更新的資料。

1)本文用 Postman 模擬 SaaS 應用。Postman 中寫入資料:


2)發現實時任務的目標表中資料變動。

3.8 知識擴展

4.2.17.5 及之後版本,支援查看 API 的呼叫詳情,比如呼叫 API 時的請求內容、傳回內容,具體說明可參見:顯示資料服務API呼叫詳情