Dataway是Hasor生態中的接口配置工具,能幫助開發者快速配置數據接口。它支持DataQL和SQL兩種語言模式,可將SQL轉換為DataQL執行,簡化數據查詢與交互,無需編寫大量代碼。接口配置完成后,可進行自測、冒煙測試,通過后發布,之后可通過定義的接口路徑訪問數據,且接口歷史版本等信息保存在特定數據庫表中。
引入步驟
-
引入依賴 :在Spring Boot項目的
pom.xml
文件中添加Dataway相關依賴,包括hasor-spring
和hasor-dataway
,前者負責Spring與Hasor框架整合,后者是Dataway本身。 -
配置Dataway及初始化數據表 :在
application.properties
或application.yml
文件中進行Dataway相關配置,如HASOR_DATAQL_DATAWAY
和HASOR_DATAQL_DATAWAY_ADMIN
等,且Dataway需要兩張數據表才能工作,建表語句可在Dataway依賴jar包的“META-INF/hasor-framework/mysql”目錄下找到。 -
配置數據源 :若項目未集成數據源,可采用druid + mysql + spring-boot-starter-jdbc的方式進行配置,添加相應依賴并設置數據源相關參數,包括數據庫地址、用戶名、密碼等。
-
將數據源設置到Hasor容器中 :新建一個Hasor模塊類,使用
@DimModule
和@Component
注解,將該模塊交給Spring管理,并通過Spring注入數據源,在Hasor啟動時調用loadModule
方法,把數據源設置到Hasor中。 -
在Spring Boot中啟用Hasor :在Spring啟動類上增加
@EnableHasor
和@EnableHasorWeb
注解,分別在Spring中啟用Hasor和將hasor-web配置到Spring環境中,Dataway的UI是通過hasor-web提供服務。
示例代碼
以下是一個完整的示例,包括從引入依賴到創建接口的全過程:
-
引入依賴 :
<!-- Hasor核心依賴 --> <dependency><groupId>net.hasor</groupId><artifactId>hasor-core</artifactId><version>5.0.18</version> </dependency> <!-- Spring整合Hasor --> <dependency><groupId>net.hasor</groupId><artifactId>hasor-spring</artifactId><version>5.0.18</version> </dependency> <!-- Dataway --> <dependency><groupId>net.hasor</groupId><artifactId>hasor-dataway</artifactId><version>5.0.18</version> </dependency> <!-- 數據庫連接池 --> <dependency><groupId>com.alibaba</groupId><artifactId>druid-spring-boot-starter</artifactId><version>1.2.10</version> </dependency>
-
配置數據源及Dataway相關信息 :在
application.yml
文件中配置數據源和Dataway的訪問路徑等信息。spring:datasource:url: jdbc:mysql://localhost:3306/dataway_demousername: rootpassword: 123456driver-class-name: com.mysql.cj.jdbc.Driver hasor:dataway:api: /api/admin: /interface-ui/
-
創建Hasor模塊類,將數據源注入到Hasor容器 :
@DimModule @Component public class ExampleModule implements SpringModule {@Autowiredprivate DataSource dataSource;@Overridepublic void loadModule(ApiBinder apiBinder) throws Throwable {apiBinder.installModule(new JdbcModule(Level.Full, this.dataSource));} }
-
在Spring Boot啟動類上啟用Hasor :
@EnableHasor @EnableHasorWeb @SpringBootApplication public class DatawayDemoApplication {public static void main(String[] args) {SpringApplication.run(DatawayDemoApplication.class, args);} }
-
在Dataway管理界面創建接口 :應用啟動后,訪問
http://localhost:8080/interface-ui/
進入Dataway管理界面,點擊“新建接口”按鈕,輸入接口名稱和路徑,如/getUsers
,然后在查詢編輯器中編寫DataQL查詢,例如:var query = @@sql()<%SELECT id, name, age FROM user %>; return query();
點擊“保存”按鈕保存接口,然后點擊“測試”按鈕測試接口是否正常工作。
-
自定義UDF :以下是一個自定義UDF的示例,用于返回當前用戶的名字:
@DimUdf("myNameUdf") @Service public class MyNameUdf implements Udf {@Resourceprivate MyUdfService myUdfService;@Overridepublic Object call(Hints readOnly, Object... params) {return myUdfService.myName();} }
在Dataway管理界面,可以通過以下方式調用自定義UDF:
import 'com.demo.udf.MyNameUdf' as myNameUdf; return myNameUdf();
說明 :在使用Dataway之前,需要確保已正確安裝和配置了數據庫,并且數據庫中已存在所需的表和數據。同時,還需要根據實際需求對Dataway的配置進行調整,如設置接口的安全性、緩存等。
Dataway的使用流程大致是先引入依賴,再進行相關配置,最后通過其管理界面或代碼方式創建接口。它能極大簡化數據接口的開發過程,提高開發效率。
使用Dataway管理界面自測
-
進入管理界面:應用啟動后,在瀏覽器中輸入
http://localhost:8080/interface-ui/
訪問Dataway管理界面。 -
新建接口:點擊“新建接口”按鈕,輸入接口名稱、路徑等信息,選擇使用DataQL或SQL模式編寫接口邏輯。
-
編寫接口代碼:在查詢編輯器中編寫DataQL或SQL代碼,例如使用DataQL編寫查詢代碼。
-
點擊測試:保存接口后,點擊“測試”按鈕,即可在管理界面中查看接口的返回結果,檢查接口是否按預期工作。
使用Dataway管理界面冒煙測試
-
進入管理界面:訪問
http://localhost:8080/interface-ui/
。 -
選擇要測試的接口:找到已創建但尚未發布的接口,點擊“冒煙測試”按鈕。
-
查看測試結果:根據冒煙測試的結果,確認接口是否符合基本要求,若通過則可以點擊“發布”按鈕正式發布接口。
使用Postman或其他HTTP客戶端測試
-
獲取接口地址:接口發布后,根據配置的API路徑和接口路徑拼接完整的接口地址,如
http://localhost:8080/api/demo
。 -
發送HTTP請求:使用Postman或其他HTTP客戶端工具,按照接口的請求方法(如GET、POST等)發送請求。如果接口需要參數,需在請求中包含相應的參數。
-
檢查響應結果:查看HTTP客戶端返回的響應結果,確認接口的返回數據是否正確,HTTP狀態碼是否為200等,以驗證接口是否正常工作。
?