背景
開放平台基礎資料API分組裏面的API使用介紹,這個分組裏面的API和其他API有點不一樣,會涉及到一個配置資料,所以單獨寫個文檔每個API介紹一下使用。
API呼叫
API呼叫的方式,需要怎麼鑑權和其他API呼叫是一樣的,這邊不介紹了,文檔主要介紹每個API實現的功能,配置項含義和傳遞參數的含義。
報表資料服務API
API地址:http://ip:port/webroot/decision/sp/client/api/ds/data
請求方式:GET
API作用:傳回cpt範本或者frm範本裏面的資料集資料(目前不支援FVS)
透過配置項裏面確認具體的範本和資料集名稱,範例如下圖:
配置中的名稱是固定的,並且值無法透過參數進行傳遞的
report:範本的具體路徑
dsName:資料集名稱
如果資料集計算需要傳遞參數,那麼可以透過存取API時候傳入對應名稱的參數。
呼叫範例
範本配置,test.cpt範本中,新增了一個user名稱的資料集,存取finedb中的使用者表,並且資料集計算需要傳入userName參數
API配置,配置範本路徑和資料集名稱
API存取,透過query參數傳遞資料集計算需要的userName參數
傳回成功範例:
{
"status": 200,
"data": [
{
"LANGUAGE": null,
"LASTOPERATIONTYPE": 1,
"REALNAME": "2",
"TENANTID": "default",
"USERALIAS": "2",
"ENABLE": true,
"REALALIAS": "2",
"EMAIL": "",
"MALE": true,
"CREATIONTYPE": 1,
"SALT": "e6618614-05c1-4748-b43d-9c30aa6806fa",
"PASSWORD": "d4735e3a265e16eee03f59718b9b5d03019c07d8b6c51f90da3a666eec13ab35",
"DESCRIPTION": null,
"USERNAME": "2",
"ID": "cb74b33c-d8f3-4b35-97e2-da9b666ece97",
"BIRTHDAY": null,
"MOBILE": "",
"WORKPHONE": null
}
]
}
傳回失敗範例:
{
"status": 400,
"errorCode": "E000016",
"errorMsg": "[com.tptj.plugin.hg.client.center.api.data.AbstractDataApi.getTableDataSource][讀取範本檔案異常:錯誤程式碼:11300004 沒有找到範本檔案:reportlets/tet.cpt-[tet.cpt]錯誤程式碼:11300004 沒有找到範本檔案:reportlets/tet.cpt]"
}
報表分組資料服務
API地址:http://ip:port/webroot/decision/sp/client/api/group/report/data
請求方式:GET
API作用:傳回cpt範本指定sheet的資料
透過配置項指定範本路徑、sheet名稱、以及是否傳回儲存格顯示值,如下圖:
透過API存取時候傳遞範本計算所需要的參數。
API呼叫範例
還是以test.cpt為例,範本預覽結果
API呼叫
傳回成功範例
回傳值邏輯詳解
目前只支援cpt範本,解析標題、表頭、和內容的邏輯:
計算完的第一個有資料的行作為標題行
計算完的第二個有資料的行作為表頭
計算完的第三行起都作為表格資料
隱藏列不匯出,隱藏行不匯出,也不計入前三行的判斷中
回傳值從左往右根據內容進行相同內容合併
此API目前解析適用場景較少,所以此API更多作為一個範例,不建議在業務中使用。
報表資料服務
API地址:http://ip:port/webroot/decision/sp/client/api/list/report/data
請求方式:GET
此API和報表分組資料服務API配置和作用一樣的,只是此API將範本資料作為一個明細表傳回。
所以這邊只提供API呼叫範例,以及回傳值範例,配置項含義參考報表分組服務API
回傳值範例:
回傳值標題、表頭、表格資料解析邏輯和報表分組資料服務API一樣,只是將表格資料作為明細傳回了。
Sql資料服務
API地址:http://ip:port/webroot/decision/sp/client/api/sql/data
請求方式:GET
API作用:指定jdbc資料連結下執行sql,並且傳回執行結果
API配置項:
connection:資料連結名稱
sql:sql語句,支援帆軟資料集的參數寫法,範例:SELECT * FROM `銷量` where 地區 = '${地區}' ,呼叫API的時候可以根據參數名傳入對應的參數值
API呼叫範例
配置項:
傳入地區參數執行sql
回傳值範例:
填報服務API
API地址:http://ip:port/webroot/decision/sp/client/api/write/report/data
請求方式:POST
API作用:指定範本,根據傳入的參數填報方式預覽範本,並且執行對應的填報提交
API配置項
report:指定範本的路徑
API呼叫範例
範本配置:填報屬性往FRDemo的銷量表中填報資料,引用的儲存格資料,儲存格的值直接引用的參數值。正常預覽範本並且傳入對應的參數值,點選填報就可以將資料填報到對應資料庫表。
API配置:指定剛剛的配置的WorkBook13.cpt
API呼叫:透過query傳入範本計算需要的參數
提交結果
所以API作用就是將指定的範本傳入參數計算一遍,然後填報提交。和直接填報預覽完手動點選填報按鈕的效果是一樣的。
預設參數
API配置中有個預設參數配置,這個和配置一樣可以設定一些參數的值,這個只是一個預留配置,方便API編輯的時候預設設定一些配置值,不會影響到存取API的時候的參數值。
擴展使用
透過上面資料服務API分組裏面的API都是在API配置項裏面制定對應的資料集和範本,是無法呼叫API動態傳遞的,這樣設計是為了安全考慮,不允許呼叫方去指定範本或者資料集,只能是管理者配置API的時候設定。
這樣就容易出現了一個問題,當有範本或者資料集需要透過API開放的時候只有一個API是無法實現。
這個可以透過API複製功能,然後修改複製後的API存取地址和配置項來完成對應的功能。
以報表資料服務APIAPI為例,複製一個新的同樣功能API出來。
點選是複製按鈕
為複製出來的API設定分組
修改複製出來API的名稱和路徑
為新API授權
修改新API的配置項,範本依然選擇test.cpt,dsName重新設定
範本中新加資料集
使用新地址呼叫API