Dataway介紹
Dataway 是基于 DataQL 服務(wù)聚合能力车海,為應(yīng)用提供的一個(gè)接口配置工具。使得使用者無需開發(fā)任何代碼就配置一個(gè)滿足需求的接口。 整個(gè)接口配置侍芝、測試研铆、冒煙、發(fā)布州叠。一站式都通過 Dataway 提供的 UI 界面完成棵红。UI 會(huì)以 Jar 包方式提供并集成到應(yīng)用中并和應(yīng)用共享同一個(gè) http 端口,應(yīng)用無需單獨(dú)為 Dataway 開辟新的管理端口咧栗。?
這種內(nèi)嵌集成方式模式的優(yōu)點(diǎn)是逆甜,可以使得大部分老項(xiàng)目都可以在無侵入的情況下直接應(yīng)用 Dataway。進(jìn)而改進(jìn)老項(xiàng)目的迭代效率致板,大大減少企業(yè)項(xiàng)目研發(fā)成本交煞。?
Dataway 工具化的提供 DataQL 配置能力。這種研發(fā)模式的變革使得斟或,相當(dāng)多的需求開發(fā)場景只需要配置即可完成交付素征。 從而避免了從數(shù)據(jù)存取到前端接口之間的一系列開發(fā)任務(wù),例如:Mapper萝挤、BO御毅、VO、DO平斩、DAO亚享、Service、Controller 統(tǒng)統(tǒng)不在需要绘面。
Dataway 是 Hasor 生態(tài)中的一員欺税,因此在 Spring 中使用 Dataway 首先要做的就是打通兩個(gè)生態(tài)。根據(jù)官方文檔中推薦的方式我們將 Hasor 和 Spring Boot 整合起來揭璃。
第一步:引入相關(guān)依賴
hasor-spring 負(fù)責(zé) Spring 和 Hasor 框架之間的整合晚凿。
hasor-dataway 是工作在 Hasor 之上,利用 hasor-spring 我們就可以使用 dataway了瘦馍。
第二步:配置 Dataway歼秽,并初始化數(shù)據(jù)表
dataway 會(huì)提供一個(gè)界面讓我們配置接口,這一點(diǎn)類似 Swagger 只要jar包集成就可以實(shí)現(xiàn)接口配置情组。找到我們 springboot 項(xiàng)目的配置文件?application.properties
Dataway 一共涉及到 5個(gè)可以配置的配置項(xiàng)燥筷,但不是所有配置都是必須的。
其中?HASOR_DATAQL_DATAWAY院崇、
HASOR_DATAQL_DATAWAY_ADMIN?兩個(gè)配置是必須要打開的肆氓,默認(rèn)情況下 Datawaty 是不啟用的。
Dataway 需要兩個(gè)數(shù)據(jù)表才能工作底瓣,下面是這兩個(gè)數(shù)據(jù)表的簡表語句谢揪。下面這個(gè) SQL 可以在 dataway的依賴 jar 包中 “
META-INF/hasor-framework/mysql” 目錄下面找到,建表語句是用 mysql 語法寫的。
第三步:配置數(shù)據(jù)源
作為 Spring Boot 項(xiàng)目有著自己完善的數(shù)據(jù)庫方面工具支持拨扶。我們這次采用 druid + mysql + spring-boot-starter-jdbc 的方式凳鬓。
首先引入依賴
然后增加數(shù)據(jù)源的配置
如果項(xiàng)目已經(jīng)集成了自己的數(shù)據(jù)源,那么可以忽略第三步患民。
第四步:把數(shù)據(jù)源設(shè)置到 Hasor 容器中
Spring Boot 和 Hasor 本是兩個(gè)獨(dú)立的容器框架缩举,我們做整合之后為了使用 Dataway 的能力需要把 Spring 中的數(shù)據(jù)源設(shè)置到 Hasor 中。
首先新建一個(gè) Hasor 的 模塊酒奶,并且將其交給 Spring 管理蚁孔。然后把數(shù)據(jù)源通過 Spring 注入進(jìn)來。
Hasor 啟動(dòng)的時(shí)候會(huì)調(diào)用 loadModule 方法惋嚎,在這里再把 DataSource 設(shè)置到 Hasor 中杠氢。
第五步:在SprintBoot 中啟用 Hasor
這一步非常簡單,只需要在 Spring 啟動(dòng)類上增加兩個(gè)注解即可另伍。
第六步:啟動(dòng)應(yīng)用
應(yīng)用在啟動(dòng)過程中會(huì)看到 Hasor Boot 的歡迎信息
在后面的日志中還可以看到類似下面這些日志鼻百。
當(dāng)看到 “dataway api workAt?/api/” 、 dataway admin workAt?/interface-ui/信息時(shí)摆尝,就可以確定 Dataway 的配置已經(jīng)生效了温艇。
第七步:訪問接口管理頁面進(jìn)行接口配置
在瀏覽器中輸入 “
http://127.0.0.1:8080/interface-ui/” 就可以看到期待已久的界面了。
第八步:新建一個(gè)接口
Dataway 提供了2中語言模式堕汞,我們可以使用強(qiáng)大的 DataQL 查詢語言勺爱,也可以直接使用 SQL 語言(在 Dataway 內(nèi)部 SQL 語言也會(huì)被轉(zhuǎn)換為 DataQL 的形式執(zhí)行。)
同樣的方式我們使用 DataQL 的方式需要這樣寫:
其中 var query =?@@sql()<% ... %>?是用來定義SQL外部代碼塊讯检,并將這個(gè)定義存入 query 變量名中琐鲁。 <% %> 中間的就是 SQL 語句。
最后在 DataQL 中調(diào)用這個(gè)代碼塊人灼,并返回查詢結(jié)果围段。
當(dāng)接口寫好之后就可以保存發(fā)布了,為了測試方便投放,我選用 GET 方式奈泪。
接口發(fā)布之后我們直接請(qǐng)求:
http://127.0.0.1:8080/api/demos,就看到期待已久的接口返回值了灸芳。
最后總結(jié)
經(jīng)過上面的幾個(gè)步驟我們介紹了如何基于 Spring Boot 項(xiàng)目使用 Dataway 來簡單的配置接口涝桅。Dataway 的方式確實(shí)給人耳目一新,一個(gè)接口竟然可以如此簡單的配置出來無需開發(fā)任何一行代碼烙样,也不需要做任何 Mapping 實(shí)體映射綁定苹支。