1. 程式人生 > >代理---ai資料獲取與處理

代理---ai資料獲取與處理

一、代理產生的需求分析     當有客戶需要定製ai、bi產品的大屏、報警時,需要呼叫ai、bi等資料的api,但是直接呼叫ai、bi的api是不能夠獲取資料的,因為,呼叫介面的時候,需要通過驗證才可以,否則呼叫介面就是返回的是401狀態(未授權的狀態),所以,就需要定製一款產品,可以直接呼叫代理所提供的api獲取ai的資料。在代理產生之前都是通過定製ai產品,對外提供開放的api提供資料,這樣的做法操作起來比較繁瑣,而且效率較低,所以,我們就使用了代理的方式獲取ai資料。 二、代理系統原理     根據ai、bi等產品的特性,在每一次呼叫dv的api時,請求的url的請求頭中都會攜帶一些登陸驗證的資訊,對接使用者中心的產品和沒有對接使用者中心的產品,登陸認證的方式是不同。     1、對接使用者中心         對接使用者中心時,登陸時訪問的介面為:/account/sessionId.do    請求方法:get     在訪問其他介面之前,都會先呼叫這個介面獲取使用者的登陸資訊,然後,再呼叫其它介面之前,每次請求的url的頭資訊中都會攜帶登陸介面所返回的認證資訊,這樣就可以正常訪問ai、bi等產品的其他介面了。     2、無對接使用者中心         當是部署單獨的產品時,登陸時訪問的介面為:/tpm/account/login  請求方法:post     剩下的具體的操作過程是和  對接使用者中心  的步驟是一樣的,區別是,兩個登陸介面所返回的值是不同的。     3、代理的優化處理         具備了基本的核心功能,後續就需要有許多優化的處理,這個工作目前已知的需要優化的部分 完成情況為:         3.1 請求引數的處理(已完成)         3.2 常量欄位處理(已完成)         3.3 請求流程的簡化(正在進行...)         3.4 資料請求介面化(正在進行...)         3.5 多執行緒請求資料功能的實現(需要對接Ai5.0) 三、代理的模組化分析     1. 開發環境配置     1.1 IDE及周邊設定     software requirements:     JDK (Oracle Hotspot JDK version >= 1.8.0_45)     Intellij IDEA     Git     Maven (version >= 3.2.0)     lombok (version >= 0.11.8)     1.2 程式碼風格     MetaMx Java Code.xml (在idea中設定程式碼風格)     2. 專案和程式碼說明     2.1 專案結構 |----pivot-ai (ai代理模組) |----pivot-bi (bi代理模組) |----pivot-dm (data manager, 模型管理模組) |----pivot-util (data util, 工具類集合) |----pivot-install (安裝包專案) ``` 類似proxy-ai和proxy-bi模組可根據需求新增或刪除     技術棧     目前我們使用 SpringBoot + MyBatis + MySQL     2.2 程式碼提交規範與jira使用        1. 請確保對原始碼的每一行修改(包括配置)都有對應的jira issue;        2. 提交修改時comment內容如下格式: `git commit -m "JIRA-NUM: your commit comment goes here"`;其中`JIRA-NUM`為對應的jira號;        3. commit提交到遠端程式碼倉庫後,即時更新jira issue,添加註釋;註釋內容為:     * 如果建立了遠端分支,請寫明分支名稱;     * 請在註釋中寫明修改的內容;如有必要,儘量闡明bug原因或者新功能的內容或者修改對系統的重大影響等;        4. 功能開發完成,或者bug修改結束,需要通知測試同事測試;        5. 測試通過,在gitlab頁面,建立pull request,並提交給相關同事稽核,稽核通過後由稽核同事負責merge;        6. 開發過程中請更新對應的jira狀態;        7. bug修改的分支名,以`fix/`作為字首;新功能分支名以`feature/`作為字首;定製分支名以`release/`作為字首; 打包命令:     mvn clean package 執行打包命令後,會在proxy-install/target路徑下生成.tar.gz和.zip兩個安裝包     3. 執行專案        1. 解壓medivh-proxy.tar.gz或medivh-proxy.zip包        2. 執行根路徑下的startup.sh指令碼啟動專案        4. 執行根路徑下的shutdown.sh指令碼終止專案