反饋已提交
網絡繁忙
FR11.0提供開放平臺,透過簡單的預設API呼叫和靈活的傳參配置,生成自訂的API,降低開發成本。
提供統一的平台配置,實現客戶端呼叫API的權限管控和驗證規範的管控。
以管理員身份登入決策平台後,點擊【管理系統】→【開放平臺】進入功能介面。
客戶端提供一對ID和金鑰,用於管控第三方系統呼叫API的權限。
開放平臺支援對客戶端進行新增、編輯、禁用、單個刪除、批量刪除的管理操作。
客戶端設定支援自訂【客戶端名稱】、【客戶端描述】和【備選認證】,用於區分客戶端。
【客戶端ID】和【金鑰】不可自訂和編輯,在客戶端新增確認後自動生成。
編輯操作還支援對【是否重置密碼】進行自訂設定。
認證方式為對外服務提供相關的安全保障,開放平臺已內建了3種認證方式,使用者也可以自訂認證方式。
使用者可對認證方式進行新增、編輯、禁用、單個刪除、批量刪除的管理操作。
認證方式設定項中【認證名稱】和【認證描述】可任意自訂,方便使用者自行區分。
認證方式設定項中【API類】是我們需要實現的認證API的例項物件(同一個類,可以透過配置的改變來變成多種認證方式)。
認證方式設定項中【配置】是這個認證需要的一些固定配置,例如摘要簽名認證需要定義【摘要算法】和【有效期】。
【自簽發token認證】方式是所有的客戶端介面都支援的,不論是否選擇【備選認證】,這種方式都支援。
【自簽發token認證】是透過access_token呼叫服務的方式,需先使用客戶端ID和金鑰獲取access_token。
【AKSK直接認證】方式是利用客戶端ID和金鑰直接作為認證依據,直接呼叫服務的方式,處於安全考慮,不推薦使用該方式,無需配置項,這項認證不可編輯。
【摘要簽名認證】方式是在不能用token認證的情況下,利用摘要演算法(比如 MD5/ SHA256),對客戶端ID和金鑰以及時間戳進行簽名後,透過簽名和客戶端ID進行認證。比較推薦使用這種認證方式,相對安全一些。
【摘要簽名認證】中【簽名】= 摘要算法(客戶端ID+金鑰+時間戳)+時間戳。例如:【client_id=203bc7b8db1d423fb55824150327ef98,secret=98ffd41b86db4868a6875f57e6974bbc, timestamp=1600166180321, 配置的 簽名算法爲MD5,超時時間爲300秒】->【簽名 = MD5(client_id+secret+timestamp)+timestamp = EE6E14BCEC5724C3BC6FC08AFC5C2B111600166180321】
【所有API】是對第三方系統與FR進行資料互動服務的配置。
介面左側為分組,是對服務API進行分組的管理,系統內建了多種常用分組。
使用者可對分組進行新增、編輯、刪除的管理操作,編輯和刪除不可對內建的分組進行操作。
選中一個分組後,介面右側展示該分組下的服務API列表,系統內建了多種常用的服務API。
使用者可對服務API進行新增、編輯、禁用、單個刪除、批量刪除和更換分組的操作。
注:內建的分組是無法編輯和删除的。
【API名稱】和【API描述】可任意自訂,方便使用者自行區分。
【API類】指向的是我們實現的服務API例項。
【API路徑】和【API方法】表示的是http請求中呼叫這個API的 path和方法,路徑前面不要加/。新增加API的【API路徑】,使用者也可以任意自訂(注意不要和已有API的路徑相同)。
實際請求地址:$HOST/sp/client/api/API路徑。假設 $HOST = http://localhost:8075/webroot/decision ,則請求地址爲 http://localhost:8075/webroot/decision/sp/client/api/API路徑。
【配置】就是我們初始化這個服務需要的配置資訊。
注:內建的API部分是不能編輯的,即便能編輯的在重啓後也會還原。
客戶端權限用於配置不同的客戶端在呼叫API時的權限和不同API在應用客戶端時的權限。
標誌為【】時表示沒有權限,標誌為【】時表示權限開啟。
注:目前不存在分組權限,也就是即便是把某個分組權限打開了,實質上也只是把當前分組下面的API的權限分配給了某個客戶端,如果後續發生了API分組變更,或者該分組API新增,那麼權限是不會發生變化的。
該介面可以查看當日不同時間點API的請求頻率,也可以查看API請求的詳細記錄。
應用場景:將SQL轉換成數據服務向第三方提供使用,主要用於一些基礎的簡單的資料服務的對外提供,完全不依賴於範本,只要寫SQL。
相關API例項:com.tptj.plugin.hg.client.center.api.data.GetBySql。
配置項:【connection】SQL執行的資料來源連線名稱;【sql】資料來源的SQL。
應用場景:將做好的範本內的資料集內容向第三方提供使用,適用於資料的來源不是SQL的資料集資料,或者其他不適合直接向第三方開發源資料連線的資料服務。
相關API例項:com.tptj.plugin.hg.client.center.api.data.GetByTableData。
配置項:【report】資料來源的報表路徑(相對於reportlets);【dsName】資料集的名稱。
應用場景:借助FR範本來實現向第三方提供資料錄入/審批等服務。
相關API例項:com.tptj.plugin.hg.client.center.api.data.WriteReport。
配置項:【report】——某個填報範本的路徑(相對於reportlets);【sheet】可選項,需要執行的具體某個sheet中範本填報屬性內的填報業務,如果不填這個參數,就會執行所有sheet的範本填報屬性內的填報業務。
注1:下圖範例中使用的【Body】參數,可以直接通過URL傳,也可以通過請求的body傳(僅限通過呼叫接口服務的情況下)。
注2:如果http請求的body是一個json,那麽在計算的報表内有兩種引用:①直接通過 【$body】 或者【${body} 】這個參數名獲取到整個json字符串,②如果是【{ key1:xxxx,key2:ffffff,...,keyN:fsss }】這種結構的body,還可以直接通過【$key1,$key2,....$keyN】在報表中使用這些參數。
注3:該填報不會觸發JS相關事件。
應用場景:透過製作成簡單的列式/欄式報表的形式輸出資料的服務,適用於一些無法用單個資料集簡單取出的數據。
相關API例項:com.tptj.plugin.hg.client.center.api.data.GetListByReport。
配置項:【report】資料集來源的報表路徑(相對於reportlets);【tag】資料來源的sheet名。
注1:這并不是一個真正通用的API實現範例,目前僅支援純資料表,且資料區域的識別會按照從上往下,逐行從左往右查看,找到的第一個 “向下擴展”且所在列未隐藏的的儲存格列作爲資料的起始列。
注2:列表頭列的判斷是,資料列之前的所有列中,如果該列有超過一個格子有值,且該列未隐藏,則該列被作爲列表頭列。可以有多層列表頭,但是目前每欄的列表頭只取最接近資料列的列表頭儲存格的值作爲該欄的列表頭。
注3:明細資料不輸出的部分包括①【標題列】資料列前只有一格有值的列(可以有多個,輸出順序按行序号排序),②【空列】所有列高等於0,或者一整列都沒有資料的列,③【空欄】欄寬等於0,或者該欄的欄表頭的值是空的。
注4:不要使用複雜或大資料筆數範本。
應用場景:透過製作成簡單的分組式報表的形式輸出資料的服務,適用於一些無法用單個資料集簡單取出的數據。
相關API例項:com.tptj.plugin.hg.client.center.api.data.SheetGroupDataByReport。
配置項:【report】資料來源的報表路徑(相對於reportlets);【tag】資料來源的sheet名。
注1:這并不是一個真正通用的API實現範例,範本的限制同上述【簡單報表列欄式數據服務】中的注1~3。
注2:不要使用複雜或大資料筆數範本。
應用場景:內建的認證方式或API不足以滿足業務需求,希望能夠添加自訂開發認證方式或API。
範例代碼及說明:jee/open-client-demo: 開放平臺子插件demo - open-client-demo - 帆軟第三方插件倉庫 (fanruan.com)
注:該範例為定制開發範例,僅做參考。用戶可參考相關邏輯自行開發,如需官方開發人員做相關定制開發,請聯繫對應銷售經理進一步諮詢。
文 檔回 饋
滑鼠選中內容,快速回饋問題
滑鼠選中存在疑惑的內容,即可快速回饋問題,我們將會跟進處理。
不再提示
10s後關閉