在 Spring Boot 中使用 Dataway 配置數據查詢接口

原文作者: 哈庫納

在 Spring Boot 中使用 Dataway 配置數據查詢接口

Dataway介紹

Dataway 是基於 DataQL 服務聚合能力,為應用提供的一個接口配置工具。使得使用者無需開發任何代碼就配置一個滿足需求的接口。 整個接口配置、測試、冒煙、發佈。一站式都通過 Dataway 提供的 UI 界面完成。UI 會以 Jar 包方式提供並集成到應用中並和應用共享同一個 http 端口,應用無需單獨為 Dataway 開闢新的管理端口。
這種內嵌集成方式模式的優點是,可以使得大部分老項目都可以在無侵入的情況下直接應用 Dataway。進而改進老項目的迭代效率,大大減少企業項目研發成本。
Dataway 工具化的提供 DataQL 配置能力。這種研發模式的變革使得,相當多的需求開發場景只需要配置即可完成交付。 從而避免了從數據存取到前端接口之間的一系列開發任務,例如:Mapper、BO、VO、DO、DAO、Service、Controller 統統不在需要。

Dataway 是 Hasor 生態中的一員,因此在 Spring 中使用 Dataway 首先要做的就是打通兩個生態。根據官方文檔中推薦的方式我們將 Hasor 和 Spring Boot 整合起來。

第一步:引入相關依賴

在 Spring Boot 中使用 Dataway 配置數據查詢接口

hasor-spring 負責 Spring 和 Hasor 框架之間的整合。
hasor-dataway 是工作在 Hasor 之上,利用 hasor-spring 我們就可以使用 dataway了。

第二步:配置 Dataway,並初始化數據表

dataway 會提供一個界面讓我們配置接口,這一點類似 Swagger 只要jar包集成就可以實現接口配置。找到我們 springboot 項目的配置文件 application.properties

在 Spring Boot 中使用 Dataway 配置數據查詢接口

Dataway 一共涉及到 5個可以配置的配置項,但不是所有配置都是必須的。

其中 HASOR_DATAQL_DATAWAYHASOR_DATAQL_DATAWAY_ADMIN 兩個配置是必須要打開的,默認情況下 Datawaty 是不啟用的。

Dataway 需要兩個數據表才能工作,下面是這兩個數據表的簡表語句。下面這個 SQL 可以在 dataway的依賴 jar 包中 “META-INF/hasor-framework/mysql” 目錄下面找到,建表語句是用 mysql 語法寫的。

在 Spring Boot 中使用 Dataway 配置數據查詢接口

第三步:配置數據源

作為 Spring Boot 項目有著自己完善的數據庫方面工具支持。我們這次採用 druid + mysql + spring-boot-starter-jdbc 的方式。

首先引入依賴

在 Spring Boot 中使用 Dataway 配置數據查詢接口

然後增加數據源的配置

在 Spring Boot 中使用 Dataway 配置數據查詢接口

如果項目已經集成了自己的數據源,那麼可以忽略第三步。

第四步:把數據源設置到 Hasor 容器中

Spring Boot 和 Hasor 本是兩個獨立的容器框架,我們做整合之後為了使用 Dataway 的能力需要把 Spring 中的數據源設置到 Hasor 中。

首先新建一個 Hasor 的 模塊,並且將其交給 Spring 管理。然後把數據源通過 Spring 注入進來。

在 Spring Boot 中使用 Dataway 配置數據查詢接口

Hasor 啟動的時候會調用 loadModule 方法,在這裡再把 DataSource 設置到 Hasor 中。

第五步:在SprintBoot 中啟用 Hasor

在 Spring Boot 中使用 Dataway 配置數據查詢接口

這一步非常簡單,只需要在 Spring 啟動類上增加兩個註解即可。

第六步:啟動應用

應用在啟動過程中會看到 Hasor Boot 的歡迎信息

在 Spring Boot 中使用 Dataway 配置數據查詢接口

在後面的日誌中還可以看到類似下面這些日誌。

在 Spring Boot 中使用 Dataway 配置數據查詢接口

當看到 “dataway api workAt /api/” 、 dataway admin workAt /interface-ui/ 信息時,就可以確定 Dataway 的配置已經生效了。

第七步:訪問接口管理頁面進行接口配置

在瀏覽器中輸入 “http://127.0.0.1:8080/interface-ui/” 就可以看到期待已久的界面了。

在 Spring Boot 中使用 Dataway 配置數據查詢接口

第八步:新建一個接口

Dataway 提供了2中語言模式,我們可以使用強大的 DataQL 查詢語言,也可以直接使用 SQL 語言(在 Dataway 內部 SQL 語言也會被轉換為 DataQL 的形式執行。)

在 Spring Boot 中使用 Dataway 配置數據查詢接口

同樣的方式我們使用 DataQL 的方式需要這樣寫:

在 Spring Boot 中使用 Dataway 配置數據查詢接口

其中 var query = @@sql() 是用來定義SQL外部代碼塊,並將這個定義存入 query 變量名中。 中間的就是 SQL 語句。

最後在 DataQL 中調用這個代碼塊,並返回查詢結果。

當接口寫好之後就可以保存發佈了,為了測試方便,我選用 GET 方式。

在 Spring Boot 中使用 Dataway 配置數據查詢接口

接口發佈之後我們直接請求:http://127.0.0.1:8080/api/demos,就看到期待已久的接口返回值了。

在 Spring Boot 中使用 Dataway 配置數據查詢接口

最後總結

經過上面的幾個步驟我們介紹瞭如何基於 Spring Boot 項目使用 Dataway 來簡單的配置接口。Dataway 的方式確實給人耳目一新,一個接口竟然可以如此簡單的配置出來無需開發任何一行代碼,也不需要做任何 Mapping 實體映射綁定。


分享到:


相關文章: