當您需要對資料進行彙總計算,或需整合第三方資料,或考慮高效能、高安全性、日誌監控、流量控制等因素時,可將業務資料發布為API,接入DataV-Board。本文檔介紹在DataV-Board中添加API資料來源的方法,以及相關參數配置說明。
前提條件
請確保API地址能被 DataV 服務訪問:若為本地部署,可訪問本地API服務;否則,請確保API地址為公網能訪問。
已準備好待添加的API資料來源。
說明支援HTTP/HTTPS協議API,返回格式和資料類型無特殊要求。API 可由第三方直接提供,或者根據業務自行產生。API自行產生由選擇資料來源、設計API、實現API、測試API、部署API等步驟組成,具體可諮詢相關研發人員。
已建立資料看板並添加相應組件。詳情請參見使用模板建立PC端看板、組件畫布操作、配置組件。
使用限制
所有版本均支援。
使用情境
當您使用API時,可能存在跨域或者需要cookie擷取資訊情況,系統通過伺服器代理請求和需要cookie配置項支援。具體操作參見下表。
跨域情況 | cookie情況 | 支援情況 |
不跨域 | 不需要cookie | 支援,無需勾選。 |
不跨域 | 需要cookie | 支援,僅勾選需要cookie。 |
跨域 | 不需要cookie | 支援,僅勾選伺服器代理請求。 |
跨域 | 需要cookie | 不支援,請先解決跨域問題。詳情請參見跨域資源共用。 |
操作步驟
登入DataV控制台。
選擇目標組件,在畫布右側的組件配置面板中選擇資料來源。
在設定資料來源模組中,選擇資料來源類型為API。
按實際情況填寫API參數。
參數名稱
描述
請求方式
選擇API介面的請求類型,支援GET和POST兩種類型,預設為GET。
GET:從伺服器請求資料。
POST:向伺服器提交要被處理的資料。
URL
輸入API介面的請求地址。
Headers
要求標頭參數,即包含在HTTP請求中的中繼資料,用於傳遞附加資訊。
Body
請求體參數,即請求中實際傳輸的資料部分。僅POST請求方式時需設定。
伺服器代理請求
URL地址跨域無法訪問時,勾選。
重要此時需要cookie選項不生效。
需要cookie
可使用cookie實現資料許可權控制,保證資料安全性。此時不可勾選伺服器代理請求,具體情境和原理見cookie使用說明。
說明Headers和Body參數格式為key&value格式,可使用JSON編輯器直接輸入JSON格式資料。一旦切換,無法返回可視化編輯模式,請謹慎切換。
單擊查看資料返回結果,查看資料來源的返回結果。
跨域問題說明
什麼是跨域
網站http://exampleA.com訪問網站http://exampleB.com的資料介面,將無法擷取資料。開啟瀏覽器,您可以看到如下標記為紅色的文字 (Chrome)。 這意味著我們遇到了跨域問題。
XMLHttpRequest 無法載入 http://exampleB.com。所請求的資源不帶有“Access-Control-Allow-Origin”前序。因此不允許來源站點點“http://exampleA.com”進行訪問。跨域:若兩個頁面的協議(HTTP)、連接埠(80) 和網域名稱(example.com)任意一個不相同,則該頁面之間的資源請求被認為是跨域。
解決方式
當API地址存在跨域問題時,通過以下兩種方式解決:
可直接勾選伺服器代理請求解決。
重要請確保API地址能被 DataV 服務訪問:若為本地部署,可訪問本地API服務;否則,請確保API地址為公網能訪問。
通過跨域資源共用方式解決。
重要當API同時需要cookie資訊時,只能通過跨域資源共用的方式一和方式二解決,必須明確返回需要被支援的跨域網域名稱。
跨域資源共用
跨域資源共用(CORS, Cross-Origin Resource Sharing)是一種機制,使得瀏覽器可以請求來自與其所在的伺服器不同的域上資源。基本原理為在來源站點點(被請求一方)中加入自訂的HTTP頭部,使其他網站可以訪問其資源。配置方法如下:
方法一:若來源站點點的介面資料需要被某一個網站使用,在資料服務器返回的前序資訊中加入以下內容。
Access-Control-Allow-Origin: http://exampleA.com方法二:若來源站點點的介面資料需要被多個網站使用,必須使用一個程式來動態產生前序資訊。以PHP代碼為例。
<?php if (is_my_code($_SERVER['HTTP_ORIGIN'])) { header("Access-Control-Allow-Origin: {$_SERVER['HTTP_ORIGIN']}"); } ?>方法三:若來源站點點的介面資料需要被所用的網站使用,可以使用
“*”。Access-Control-Allow-Origin: *
cookie使用說明
當資料看板通過iframe嵌入業務系統時,可使用cookie實現資料隔離。即在使用者登入的情況下,業務系統中帶有使用者登入資訊Session_Id的cookie。此時,可通過cookie擷取對應使用者資訊。
當使用API資料來源,並且選中了需要cookie(不選擇代理並且需要擷取cookie時使用)時,DataV-Board會在HTTPS請求中帶上該頁麵包含使用者登入資訊的cookie。
重要當選中需要cookie時,不可同時選中伺服器代理請求。
此時服務端會對請求進行使用者驗證,通過後返回該使用者的資料,從而實現不同使用者登入只看到自己資料,而看不到其他使用者的資料。
後續步驟
擷取未經處理資料後,可參見組件資料來源配置進行組件資料的適配。
常見問題
更多問題,請參見資料來源配置和使用常見問題。