通過建立API資料來源能夠實現Dataphin向API請求業務資料或向API請求寫入資料。本文為您介紹如何建立API資料來源。
許可權說明
僅支援擁有建立資料來源許可權點的自訂全域角色和超級管理員、資料來源管理員、板塊架構師、專案系統管理員系統角色建立資料來源。
操作步驟
在Dataphin首頁,單擊頂部功能表列管理中心 > 資料來源管理。
在資料來源頁面,單擊+建立資料來源。
在建立資料來源頁面的半結構化儲存地區,選擇API。
如果您最近使用過API,也可以在最近使用地區選取項目API。同時,您也可以在搜尋方塊中,輸入API的關鍵詞,快速搜尋。
在建立API資料來源頁面中,配置相關串連資料來源參數。
配置資料來源的基本資料。
參數
描述
資料來源名稱
命名規則如下:
只能包含中文、英文字母大小寫、數字、底線(_)或短劃線(-)。
長度不能超過64字元。
資料來源編碼
配置資料來源編碼後,您可以在Flink_SQL任務中通過
資料來源編碼.表名稱或資料來源編碼.schema.表名稱的格式引用資料來源中的表;如果需要根據所處環境自動訪問對應環境的資料來源,請通過${資料來源編碼}.table或${資料來源編碼}.schema.table的變數格式訪問。更多資訊,請參見Dataphin資料來源表開發方式。重要資料來源編碼配置成功後不支援修改。
資料來源編碼配置成功後,才能在資產清單的對象詳情頁面進行資料預覽。
Flink SQL中,目前僅支援MySQL、Hologres、MaxCompute、Oracle、StarRocks、Hive、SelectDB、GaussDB(DWS)資料來源。
資料來源描述
對資料來源的簡單描述。不超過128字元。
資料來源配置
選擇需要配置的資料來源:
如果業務資料來源區分生產資料來源和開發資料來源,則選擇生產+開發資料來源。
如果業務資料來源不區分生產資料來源和開發資料來源,則選擇生產資料來源。
標籤
您可根據標籤給資料來源進行分類打標,如何建立標籤,請參見管理資料來源標籤。
配置資料來源與Dataphin的串連參數。
說明通常情況下,生產資料來源和開發資料來源需配置為非同一個資料來源,以實現開發資料來源與生產資料來源的環境隔離,降低開發資料來源對生產資料來源的影響。但Dataphin也支援配置成同一個資料來源,即相同參數值。
參數
描述
URL地址
請填寫API請求的URL地址。
認證方式
請根據API的認證方式進行選擇。
Basic Auth
使用者名稱:填寫API的使用者名稱。
密碼:填寫API密碼。
阿里雲appKey auth
AppKey:填寫API的AppKey。
AppSecret:填寫API的AppSecret。
None:API無認證。
API Key
Key:填寫API Key認證方式的鍵。
Value:填寫API Key認證方式的值。
添加至:將API Key添加至API請求體參數Parameters、Headers、Body中的其中一個。
Bearer Token:填寫Token令牌資訊。該資訊將以
Authorization: Bearer {token}的形式添加至API的Headers中進行請求。OAuth2.0:填寫Token首碼、Access Token並配置下方的Access Token擷取配置。
Token首碼(非必填):填寫Token首碼,預設為
Bearer,支援為空白。Access Token:填寫Access Token擷取配置的返回結果中的Access Token的JSON路徑,支援多級,例如
data.access_token。
Access Token擷取配置
說明僅當認證方式選擇OAuth2.0時,支援配置此模組參數。
請求方式:可選擇POST或GET,預設為GET。
Token URL:輸入Token的請求地址,格式為
https://example.com/oauth/token。用戶端ID:輸入用戶端的ID。
用戶端密鑰:輸入用戶端的密鑰。
用戶端認證:可選擇在要求標頭中發送基本認證資訊或在請求體中發送用戶端憑證,預設為在要求標頭中發送基本認證資訊。
在要求標頭中發送基本認證資訊:在HTTP請求中直接通過
Authorization頭欄位發送基本認證資訊。基本認證的基本格式為Authorization: Basic {credentials},其中{credentials}是經過Base64編碼的使用者名稱和密碼。在請求體中發送用戶端憑證:將用戶端認證資訊發送至請求體中,kv形式為
client_id、client_secret。
進階配置
說明僅當認證方式選擇OAuth2.0時,支援配置此模組參數。
請求參數:可填寫多個請求Token需要的額外參數,預設為空白。當此處填寫的參數與上方認證自動添加的參數衝突時,以此處填寫的參數為準。
參數名稱:僅支援英文字母大小寫、數字、底線(_)和短劃線(-),不超過256個字元。
添加到:可選Parameter、Header、Body,預設為Parameter。僅當請求方式為POST時,才可選擇Body。
串連測試:單擊串連測試後,系統自動對Token URL、用戶端ID、用戶端密鑰、用戶端認證進行校正,串連測試完成後,可單擊展開查詢結果,查看格式化後的JSON。
進階設定
串連重試次數:當串連API失敗時,將自動重試串連,直到達到設定的重試次數。若達到設定的重試次數仍未串連成功,則判定為串連失敗。
單擊確定,完成API資料來源的建立。
Dataphin外部API對接說明
核心能力說明
API資料來源核心能力如下,詳細參數配置請參見上文。
能力 | 說明 |
認證方式 | 當前支援Basic Auth、阿里雲AppKey Auth、API Key、Bearer Token、OAuth2.0、簽名認證。 |
請求協議 | 支援HTTP和HTTPS協議,優先推薦使用HTTPS協議保障資料轉送安全。 重要 目前可對接HTTP以及HTTPS的API,但HTTPS僅支援忽略認證的API,不支援強制要求使用認證的API。 |
請求方式 |
|
分頁API(迴圈調用) | 支援頁碼、位移量、遊標方式的迴圈介面。 |
不同API認證方式對應的API資料來源配置
以下是支援接入的API認證方式、核心參數及使用說明,包含參數定義、配置規則、使用情境。
簡單來說,Basic Auth、阿里雲AppKey Auth為專屬情境;API Key、Bearer Token為通用情境;OAuth2.0適用於需授權的複雜情境;None適用於公開介面。
None(無認證)
核心說明
無需任何認證資訊即可調用API,適用於公開可訪問的介面(如公開查詢、匿名訪問的基礎介面),或介面本身通過IP白名單、商務邏輯做許可權控制的情境。
配置參數
無需配置任何認證參數,直接調用API即可。
Basic Auth(基本認證)
核心說明
基於HTTP基礎認證協議的簡單認證方式,使用者名稱和密碼將通過Base64編碼後置於要求標頭(
Authorization: Basic <編碼串>)中傳輸,建議僅在HTTPS協議下使用,避免明文泄露風險。必選配置參數
參數名
說明
配置樣本
使用者名稱
服務端分配的基礎認證使用者名稱(通常為字串,支援英文字母大小寫、數字和特殊字元)。
api_user_01
密碼
服務端分配的基礎認證密碼,需與使用者名稱配對使用。
e89s76d9@2026
阿里雲AppKey Auth(阿里雲專屬認證)
核心說明
阿里雲開放平台標準認證方式,基於AppKey和AppSecret進行簽名驗證(不同阿里雲產品簽名規則略有差異,通常會對請求參數、時間戳記、非空等進行加密簽名,簽名部分詳情請參見離線整合API輸入及輸出組件對接說明),適用於調用阿里雲各類開放API(如OSS、RDS、簡訊服務等)。
必選配置參數
參數名
說明
配置樣本
AppKey
服務端分配的基礎認證使用者名稱(通常為字串,支援英文字母大小寫、數字和特殊字元)。
api_user_01
AppSecret
服務端分配的基礎認證密碼,需與使用者名稱配對使用。
e89s76d9@2026
API Key(密鑰認證)
核心說明
通過自訂的Key-Value索引值對進行認證,支援將密鑰放在請求參數(URL)、要求標頭(Header)或請求體(Body)中傳輸,是通用性極強的認證方式,適配多數自研或第三方API。
必選配置參數
參數名
說明
配置樣本
Key
認證密鑰的標識名(由API提供方定義),如
api-key、app-key、token-id。api_key
Value
與Key配對的認證值,為服務端分配的唯一密鑰,請妥善保管。
789d87s6a987d6s9876d987s6987d
可選添加至
指定Key-Value的傳輸位置,可選擇:
Parameter:拼接在URL參數中,例如
https://api.xxx.com?api_key=789d87s6...\。Header:放在要求標頭中,例如
api_key: 789d87s6...。Body:放在POST請求體中。
Header
Bearer Token(令牌認證)
核心說明
基於HTTP Bearer令牌的簡易認證方式,Token直接放在要求標頭(
Authorization: Bearer <令牌值>)中傳輸,適用於單次或短期有效令牌認證情境(如臨時存取權杖)。必選配置參數
參數名
說明
配置樣本
Token
服務端頒發的Bearer令牌值,通常為字串(如JWT、隨機字串),需確保令牌在有效期間內。
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
OAuth2.0(授權碼認證)
核心說明
工業標準的授權認證協議,需先通過配置擷取Access Token,再攜帶Token調用目標API,適用於需使用者授權、多端訪問的情境(如第三方平台對接、使用者態API調用)。
以離線整合為例,目前Dataphin調用邏輯為,每次請求目標API前都會擷取Access Token,再攜帶Token調用目標API。
必選配置參數
參數名
說明
配置樣本
基礎配置
Token首碼
拼接在要求標頭中Token的首碼(通常為
Bearer,部分平台為Token或OAuth)。Bearer
Access Token路徑
擷取Access Token的介面返回中。Access Token值擷取方式如下,例如返回結果為:
{ "access_token": "access_token_return", "token_type": "Bearer", "expires_in": 3600, "refresh_token": "d68297697d37d97197d7a0c986f9d77989118912" }則填寫
access_token。access_token
Access Token擷取配置
請求方式
擷取Token的HTTP要求方法(支援GET/POST,主流為POST)。
POST
Token URL
服務端提供的擷取Access Token的介面地址。
https://oauth.xxx.com/token\用戶端ID
服務端分配的應用唯一標識(Client ID)。
client_123456789用戶端密鑰
服務端分配的應用密鑰(Client Secret),密鑰需保密,請妥善保管。
secret_987654321用戶端認證(非必選)
發送用戶端ID/密鑰的方式,可選擇:
要求標頭:放在
Authorization頭中(Basic Auth格式)。請求體:放在Token請求的Body參數中。
要求標頭
擷取Token的其他請求參數(非必選)
擷取Token時需額外攜帶的參數,支援放在Parameter(URL)或Header中。例如,
grant_type=client_credentials或scope=read_write。Parameter:
grant_type=client_credentials
介面要求
資料讀取介面
針對資料讀取介面的資料結構,僅支援單層實值型別的JSON對象結構,禁止在單條記錄的欄位值中包含數組(Array)類型,具體規範如下:
支援的標準資料結構(合規)
單條使用者記錄的所有欄位值需為字串、數字、布爾值等基礎類型,嵌套對象內的欄位值也需遵循此規則(支援多層嵌套對象)。
//支援讀取分頁資料,介面返回必須包含分頁資訊page_no、page_size { "code": 200, "msg": "請求成功", "request_id": "req-20260228001", // 唯一請求ID(排查問題用) "data": [{ "user_id": 10001, "user_name": "張三", "user_phone": "13800138000", "user_email": "zhangsan@example.com", "user_hobbies": { "sports" : "羽毛球、乒乓球",// 支援多層嵌套對象讀取 "instrument" : "吉他" }, "create_time": "2026-02-28 10:00:00" },{ "user_id": 10002, "user_name": "李四", "user_phone": "13800138001", "user_email": "lisi@example.com", "user_hobbies": { "sports" : "籃球", "instrument" : "鋼琴、二胡" }, "create_time": "2026-02-28 10:00:00" }], "page_no": 1, // 當前頁碼,分頁介面必須包含,若非分頁介面則無需該欄位 "page_size": 10, // 每頁條數,分頁介面必須包含,若非分頁介面則無需該欄位 "total": 23, // 資料總條數,非必須 "pages": 3, // 總頁數,非必須 }禁止的異常資料結構(不合規)
單條記錄中任意欄位(含嵌套對象內欄位)的值不得為數組(Array)類型,以下結構不符合對接要求,無法正常解析。
{ "code": 200, "msg": "請求成功", "request_id": "req-20260228001", "data": [{ "user_id": 10001, "user_name": "張三", "user_phone": "13800138000", "user_email": "zhangsan@example.com", "user_hobbies": { "sports": ["籃球"], // 欄位值為數組,禁止 "instrument": ["鋼琴", "二胡"] // 欄位值為數組,禁止 }, "create_time": "2026-02-28 10:00:00" }] }
資料寫入介面
針對資料寫入介面的資料結構,僅支援單層實值型別的JSON對象結構,禁止接收嵌套對象、數群組類型的欄位值,具體規範如下:
支援的標準資料結構(合規)
單條使用者記錄的所有欄位值需為字串、數字、布爾值等基礎類型,不支援嵌套對象及數組。
[{ "user_id": 10001, "user_name": "張三", "user_phone": "13800138000", "user_email": "zhangsan@example.com", "create_time": "2026-02-28 10:00:00" },{ "user_id": 10002, "user_name": "李四", "user_phone": "13800138001", "user_email": "lisi@example.com", "create_time": "2026-02-28 10:00:00" }]禁止的異常資料結構(不合規)
單條記錄中任意欄位的值禁止為嵌套對象、數群組類型,以下結構不符合對接要求,無法正常解析。
[{ "user_id": 10001, "user_name": "張三", "user_hobbies": ["籃球", "鋼琴"], // 禁止:數群組類型 "user_info": { // 禁止:嵌套物件類型 "phone": "13800138001", "email": "zhangsan@example.com" }, "create_time": "2026-02-28 10:00:00" },{ "user_id": 10002, "user_name": "李四", "user_hobbies": ["籃球", "鋼琴"], // 禁止:數群組類型 "user_info": { // 禁止:嵌套物件類型 "phone": "13800138002", "email": "lisi@example.com" }, "create_time": "2026-02-28 10:00:00" }]
離線整合API輸入及輸出組件對接說明
離線整合為API資料來源的主要使用情境,在輸入和輸出情境上,支援的能力及要求存在些許不同。API輸入/輸出組件配置詳情請參見:
一、可支援API簽名認證(整合情境使用)
API 簽名是一種強安全的身份校正機制,API 簽名通過對請求關鍵資訊(如請求參數、時間戳記、隨機數、密鑰)進行雜湊運算產生簽名串,服務端使用相同規則重新計算簽名並比對,防止請求篡改、重放攻擊。它可獨立使用,也可疊加在上述其他認證方式之上,提升介面安全性。若服務端API有簽名要求可參考這部分內容。
必選配置參數
以下參數均用於產生簽名字串。
參數名 | 說明 | 配置樣本 |
簽名名稱 | 簽名在請求中的參數名/Header名,服務端據此識別簽名。 |
|
簽名位置 | 簽名串的傳輸位置,支援:
| Params |
產生函數 | 簽名的雜湊演算法,支援:MD5HEX、HMAC_MD5、SHA1HEX、HMAC_SHA1、SHA256、SHA256HEX、HMAC_SHA256、SHA512HEX、HMAC_SHA512。 | MD5HEX |
密鑰 | 用於簽名計算的密鑰(與服務端約定,需嚴格保密) |
|
拼接內容 | 產生簽名前的原始字串拼接規則,支援:
| 自訂 |
二、當API用於讀取資料時(API輸入組件)
必要參數
參數名 | 說明 | 配置樣本 |
請求方式 | API輸入組件(API Reader)支援GET和POST。 | GET |
請求次數 | 支援單次請求和多次(迴圈)請求。 | 多次請求 |
多次(迴圈)請求:分頁迴圈
針對單次請求無法返回全量資料的 API(例如分頁介面、滾動查詢介面),支援自動迴圈調用能力,通過頁碼/位移量迴圈或遊標迴圈兩種模式,持續發起請求直至滿足終止條件,自動彙總全量資料,適配各類批量資料拉取情境。
頁碼/位移量迴圈
適用於標準分頁介面,介面通過
頁碼(page)+每頁條數(size),或位移量(offset)+每頁條數(limit)作為入參,返回指定頁資料的情境(例如page=1&size=100、offset=0&limit=100)。參數名
說明
配置樣本(page+size 分頁)
配置樣本(offset+limit 分頁)
請求參數
選擇迴圈入參的傳輸位置(僅Params/Body)+ 具體迴圈參數名。
位置:Params
參數名:
page位置:Params
參數名:
offset請求起始值
迴圈參數的初始值。
1(page從1開始)
0(offset從0開始)
請求步長
每次迴圈後參數的遞增幅度(需與介面每頁條數匹配)。
1(每頁100條,page每次 + 1)
100(每頁100條,offset 每次 + 100)
終止條件
迴圈停止的判斷規則:
支援返回參數、請求參數、常量、請求次數比較。
規則:返回參數
current_page= 常量10(拉取10頁後終止,此處條件靈活配置)
規則:返回參數
has_more= 常量false(無更多資料時終止,此處條件靈活配置)
遊標迴圈
適用於高並發/巨量資料量介面,介面通過上一次請求返回的
遊標值(cursor)作為下一次請求入參,避免頁碼分頁的 “資料漏查/重複” 問題(如滾動日誌、即時訂單拉取)。參數名
說明
配置樣本
請求參數
選擇迴圈入參的傳輸位置(Params//Body)+ 具體遊標參數名
位置:Params
參數名:
next_cursor遊標參數
定義下一次請求的遊標值來源:從本次請求的返回參數中提取(支援 JSON 路徑)
返回參數 +
data.next_cursor請求起始值
首次請求的遊標初始值(介面約定的 “初始遊標”,如 0,預設為0)
0
終止條件
迴圈停止的判斷規則:
常用「返回參數遊標值 = 常量(空 / 0)」或「返回資料為空白」
規則:返回參數
data.next_cursor= 常量 ``(Null 字元串)
多次(迴圈)請求:參數遍曆迴圈
該模式基於固定的參數值列表逐一遍曆,每次請求將列表中的一個值作為指定入參傳入API,直至列表所有值遍曆完成後終止。適用於批量查詢固定維度資料的情境(例如按城市、部門、產品ID批量拉取資料),支援手動填寫參數列表和API自動擷取參數列表兩種方式。
參數層級 | 參數名 | 詳細說明 | 配置樣本 |
迴圈列表配置 | 擷取方式 | 可選擇
| 手動填寫 |
手動填寫入模式 | 參數值列表 | 當選擇手動填寫時,輸入需遍曆的參數值,換行分隔單個值。 | 101 102 103(代表遍曆北京、上海、廣州的城市ID) |
API擷取模式 | 列表擷取API配置 | 當選擇API擷取時,需配置前置API的請求地址、請求方式、認證方式、參數,以及參數值提取路徑(支援 JSON路徑),系統會先調用該 API 擷取列表,再逐一遍曆。 | 前置API: 提取路徑: |
API模式僅支援無認證的API。
三、當API用於寫入資料時(API寫入組件)
參數名 | 說明 | 配置樣本 |
請求方式 | API輸出組件(API Writer)僅支援POST。 | POST |
請求次數 | 僅支援單次請求。 | 無需配置,預設。 |
請求的資料結構 | 請求傳遞的JSON資料的格式。
| 單條資料 |