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等,以验证接口是否正常工作。