Dataway 是基於 DataQL 服務聚合能力,為應用提供的一個介面配置工具。使得使用者無需開發任何程式碼就配置一個滿足需求的介面。 整個介面配置、測試、冒煙、釋出。一站式都透過 Dataway 提供的 UI 介面完成。UI 會以 Jar 包方式提供並整合到應用中並和應用共享同一個 http 埠,應用無需單獨為 Dataway 開闢新的管理埠。
這種內嵌整合方式模式的優點是,可以使得大部分老專案都可以在無侵入的情況下直接應用 Dataway。進而改進老專案的迭代效率,大大減少企業專案研發成本。
Dataway 工具化的提供 DataQL 配置能力。這種研發模式的變革使得,相當多的需求開發場景只需要配置即可完成交付。 從而避免了從資料存取到前端介面之間的一系列開發任務,例如:Mapper、BO、VO、DO、DAO、Service、Controller 統統不在需要。
4.1.9 作為實驗版本先行2周左右釋出,4.1.10 則主要是 4.1.9 的問題修復版本。
新增
issue 增加 LookupDataSourceListener 擴充套件介面,允許每次執行 DataQL 的 SQL 片段時都動態的查詢 DataSource 以實現動態資料來源。
issue CollectionUdfSource 函式庫需要一個 size 函式
collect 函式庫新增 size、newMap、groupBy 三個函式。
最佳化
函式庫調整:已有 hex 函式庫合入 convert 函式庫;已有 compare 函式庫合入 string 函式庫;已有 hmac 函式庫合入 codec 函式庫;
多個 Notify SPI 下,必須要有仲裁。
AppContext 介面的 joinSignal 方法廢棄。增加一個 waitSignal 方法(可以利用物件鎖的形式進行等待)
issue 最佳化 DomainHelper 增加對 UUID 型別的預設支援,將其轉換為 String
修復
新增
issue Api列表時顯式其http method
issue Dataway string 庫函式新增 split 方法。
issue UI 的操作提供許可權控制擴充套件能力
新版本檢查提示功能,例如:官方在釋出新版本的時。Interface-UI 會檢測是否有新版本並彈窗提示給使用者,使用者可以選擇永久忽略這次版本提示。
SPI 增加可以判斷 hasSpi、hasJudge 方法用來判斷 SPI 是否有被註冊。
issue 異常資訊增加了行號。
issue 新增一個開源,Parameters中結構化的引數可以包裝為一個整體。
hasor-web 專案新增 HttpParameters 工具類。可以靜態方法形式獲取各類請求引數。
最佳化
所有編輯器統一使用 MonacoEditor,去掉 Codemirror 依賴。
ApiInfo 型別中增加 CallSource 列舉,用來表示請求的來源。isPerform 方法成為過期方法。
ValueModel 的isByte、isShort、isInt、isLong 等等方法。邏輯調整為是否可以轉換為該型別。
去掉了 DataQL 的環境隔離能力。
FxWebInterceptor 對於 header、cookie 的獲取透過 HttpParameters 類來獲取。
issue 整合Swagger 之後 Header 無法透過 Swagger 傳入。
修復
issue 修復Dataway 生成的 Swagger api文件,在容器中用 swagger 訪問失敗。
issue 修復 字串加法計算特定場景下拋異常。
issue 修復 @@mybatis 多執行緒併發問題 MybatisFragment
issue 跨域下 4.1.7、4.1.8 前端請求第一次是options時會報錯。
舉個例子,在 4.1.9 版本之前如果遇到報錯。例如 target is null. 通常是不知道問題出現在具體什麼地方的,在 4.1.9 版本之後。報錯可以直接定位到具體的行列。例如下面這個 case abc 函式並不存在。報錯會指明 問題發生在 第2行 第7個字元到第12個字元之間。
基於新的 SPI LookupDataSourceListener,應用可以自己管理一個 DataSource 池和DataSource 狀態。當透過 Hint
FRAGMENT_SQL_DATA_SOURCE
來指定資料來源的時候,DataQL 會透過 LookupDataSourceListener 來進行查詢。這樣應用就可以完全自主管理資料來源。
AuthorizationChainSpi,無論是介面許可權還是 介面被呼叫的許可權都可以一收眼底。
// 配置所有介面,都是隻讀許可權 final Set<String> codeSet = AuthorizationType.Group_ReadOnly.toCodeSet(); apiBinder.bindSpiListener(AuthorizationChainSpi.class, (checkType, apiInfo, defaultCheck) -> { return checkType.testAuthorization(codeSet); });
《絕了!Dataway讓Spring Boot不再需要Controller、Service、DAO、Mapper》https://my.oschina.net/ta8210/blog/3234639
《Dataway 配置資料介面時和前端進行引數對接》 https://my.oschina.net/ta8210/blog/3236659
《透過 Dataway 配置一個帶有分頁查詢的介面》https://my.oschina.net/ta8210/blog/3277320
《Dataway 4.1.5 以上版本升級指南》https://my.oschina.net/ta8210/blog/4275154
《完美相容老專案!Dataway 4.1.6 返回結構的全面控制》https://my.oschina.net/ta8210/blog/4275216
《無需程式碼!透過 Dataway 配置一個帶有分頁查詢的介面》https://my.oschina.net/ta8210/blog/3277320
《Dataway 整合 Swagger2,讓 API 管理更順暢》https://my.oschina.net/ta8210/blog/4293622
- Dataway 官方手冊:https://www.hasor.net/web/dataway/about.html
- Dataway 在 OSC 上的專案地址,歡迎收藏:https://www.oschina.net/p/dataway
- DataQL 手冊地址:https://www.hasor.net/web/dataql/what_is_dataql.html
- Hasor 專案的首頁:https://www.hasor.net/web/index.html
[admin
]