Dataway的介绍及使用,贼好玩的开发工具

Dataway的介绍及使用,贼好玩的开发工具Dataway 是基于 DataQL 服务聚合能力 为应用提供的一个接口配置工具 使得使用者无需开发任何代码就配置一个满足需求的接口 整个接口配置 测试 冒烟 发布 一站式都通过 Dataway 提供的 UI 界面完成 UI 会以 Jar 包方式提供并集成到应用中并和应用共享同一个 http 端口 应用无需单独为 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 整合起来

1、先创建springboot项目,导入相关依赖

 
   
   
   
   
     net.hasor 
    
   
     hasor-spring 
    
   
     4.1.4 
    
   
   
   
   
     net.hasor 
    
   
     hasor-dataway 
    
    
   
     4.1.4 
    
   
   
   
   
     com.alibaba 
    
   
     druid 
    
   
     ${druid.version} 
    
  

这里使用了ali的数据源druid

2、配置Dataway

在application配置dataway参数

配置数据源跟数据库等可参考这个IDEA中创建一个SpringBoot+Mysql+MongoDB项目(一)_Sinder小德的博客-CSDN博客

# DataWay配置 Dataway 需要两个数据表才能工作 # 是否启用 Dataway 功能(必选:默认false) HASOR_DATAQL_DATAWAY=true # 是否开启 Dataway 后台管理界面(必选:默认false) HASOR_DATAQL_DATAWAY_ADMIN=true # dataway API工作路径(可选,默认:/api/) HASOR_DATAQL_DATAWAY_API_URL=/api/ # dataway-ui 的工作路径(可选,默认:/interface-ui/) HASOR_DATAQL_DATAWAY_UI_URL=/interface-ui/ # SQL执行器方言设置(可选,建议设置) HASOR_DATAQL_FX_PAGE_DIALECT=mysql

3、新建一个HasorModule配置

把数据源设置到 Hasor 容器中,将Hasor的模块交给spring去管理,然后把数据源通过spring注入进来,Hasor启动的时候会调用loadModule方法,再把DataSource设置到Hasor中。

@DimModule @Component public class HasorModule implements SpringModule { @Autowired private DataSource dataSource = null; @Override public void loadModule(ApiBinder apiBinder) throws Throwable { apiBinder.installModule(new JdbcModule(Level.Full, this.dataSource)); } }

4、在启动类中加入以下注解

// 启用 Hasor @EnableHasor() @EnableHasorWeb() @SpringBootApplication public class DatawayApplication { public static void main(String[] args) { SpringApplication.run(DatawayApplication.class, args); } }

5、新建两个数据库表,用于保存接口信息

Dataway 需要两个数据表才能工作,下面是这两个数据表的简表语句。

新建一个数据库为db_dataway,利用以下mysql命令建立两张表

CREATE TABLE `interface_info` ( `api_id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'ID', `api_method` varchar(12) NOT NULL COMMENT 'HttpMethod:GET、PUT、POST', `api_path` varchar(512) NOT NULL COMMENT '拦截路径', `api_status` int(2) NOT NULL COMMENT '状态:0草稿,1发布,2有变更,3禁用', `api_comment` varchar(255) NULL COMMENT '注释', `api_type` varchar(24) NOT NULL COMMENT '脚本类型:SQL、DataQL', `api_script` mediumtext NOT NULL COMMENT '查询脚本:xxxxxxx', `api_schema` mediumtext NULL COMMENT '接口的请求/响应数据结构', `api_sample` mediumtext NULL COMMENT '请求/响应/请求头样本数据', `api_create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `api_gmt_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间', PRIMARY KEY (`api_id`) ) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8mb4 COMMENT='Dataway 中的API'; CREATE TABLE `interface_release` ( `pub_id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'Publish ID', `pub_api_id` int(11) NOT NULL COMMENT '所属API ID', `pub_method` varchar(12) NOT NULL COMMENT 'HttpMethod:GET、PUT、POST', `pub_path` varchar(512) NOT NULL COMMENT '拦截路径', `pub_status` int(2) NOT NULL COMMENT '状态:0有效,1无效(可能被下线)', `pub_type` varchar(24) NOT NULL COMMENT '脚本类型:SQL、DataQL', `pub_script` mediumtext NOT NULL COMMENT '查询脚本:xxxxxxx', `pub_script_ori` mediumtext NOT NULL COMMENT '原始查询脚本,仅当类型为SQL时不同', `pub_schema` mediumtext NULL COMMENT '接口的请求/响应数据结构', `pub_sample` mediumtext NULL COMMENT '请求/响应/请求头样本数据', `pub_release_time`datetime DEFAULT CURRENT_TIMESTAMP COMMENT '发布时间(下线不更新)', PRIMARY KEY (`pub_id`) ) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8mb4 COMMENT='Dataway API 发布历史。'; create index idx_interface_release on interface_release (pub_api_id);

6、启动应用

应用启动会看到Hasor的欢迎信息

当看到日志中 “dataway api workAt /api/” 、 dataway admin workAt /interface-ui/ 信息时,就可以确定 Dataway 的配置已经生效了

Dataway的介绍及使用,贼好玩的开发工具

Dataway的介绍及使用,贼好玩的开发工具

7、访问接口管理页面

在浏览器中输入 “http://127.0.0.1:8080/interface-ui/” 就可以看到以下页面

Dataway的介绍及使用,贼好玩的开发工具

点击NEW可以新建一个接口,ataway 提供了2中语言模式,我们可以使用强大的 DataQL 查询语言,也可以直接使用 SQL 语言(在 Dataway 内部 SQL 语言也会被转换为 DataQL 的形式执行。)

当我们在SQL模式下执行一条SELECT语句,立刻就可以看到执行结果

Dataway的介绍及使用,贼好玩的开发工具

Dataway的介绍及使用,贼好玩的开发工具

同样的方式我们使用 DataQL 的方式需要这样写:

其中 var query = @@sql()<% ... %> 是用来定义SQL外部代码块,并将这个定义存入 query 变量名中。<% %> 中间的就是 SQL 语句。

最后在 DataQL 中调用这个代码块,并返回查询结果。

当接口写好之后就可以保存发布了,为了测试方便,我选用 GET 方式。

Dataway的介绍及使用,贼好玩的开发工具

接口发布之后我们直接请求:http://127.0.0.1:8080/api/demo,就可以看到返回值啦

Dataway的介绍及使用,贼好玩的开发工具

以上的几个步骤就是如何基于 Spring Boot 项目使用 Dataway 来简单的配置接口。

Dataway 的方式确实给人耳目一新,一个接口竟然可以如此简单的配置出来无需开发任何一行代码,也不需要做任何 Mapping 实体映射绑定。是一个很方便好玩的小工具

更多相关开发可以查看相关文档

Dataway 官方手册:https://www.hasor.net/web/dataway/about.html

DataQL 手册地址:https://www.hasor.net/web/dataql/what_is_dataql.htm

Hasor 项目的首页:https://www.hasor.net/web/index.html

拜拜,我们下次见!!!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/207799.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月19日 下午1:04
下一篇 2026年3月19日 下午1:05


相关推荐

  • navcat15.0激活码【最新永久激活】

    (navcat15.0激活码)JetBrains旗下有多款编译器工具(如:IntelliJ、WebStorm、PyCharm等)在各编程领域几乎都占据了垄断地位。建立在开源IntelliJ平台之上,过去15年以来,JetBrains一直在不断发展和完善这个平台。这个平台可以针对您的开发工作流进行微调并且能够提供…

    2022年3月31日
    209
  • idea连接数据库报错 Server returns invalid timezone. Need to set‘serverTimezone’property

    idea连接数据库报错 Server returns invalid timezone. Need to set‘serverTimezone’propertyidea 连接数据库报错 Serverreturn Needtoset serverTimezo property 原因是 MySQL 驱动中默认时区是 UTC 与本地时间 中国 相差八个小时 所以链接不上 点击 Settimezone1 在框中填写 GMT 保存即可 或填写 Asia Shanghai 2 也可以在 url 后添加 serverTimezo GMTPS GMT GreenwichMea 格林威治标准时间 UTC

    2026年3月26日
    2
  • 亿图图示 mac 激活码【最新永久激活】2022.02.09

    (亿图图示 mac 激活码)这是一篇idea技术相关文章,由全栈君为大家提供,主要知识点是关于2021JetBrains全家桶永久激活码的内容IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html4KDDGND3CI-eyJsaWN…

    2022年4月1日
    2.7K
  • phpstorm2021.11.3激活码【最新永久激活】

    (phpstorm2021.11.3激活码)最近有小伙伴私信我,问我这边有没有免费的intellijIdea的激活码,然后我将全栈君台教程分享给他了。激活成功之后他一直表示感谢,哈哈~IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.htmlCE…

    2022年3月29日
    76
  • navicat激活码无法生成【2021免费激活】[通俗易懂]

    (navicat激活码无法生成)本文适用于JetBrains家族所有ide,包括IntelliJidea,phpstorm,webstorm,pycharm,datagrip等。https://javaforall.net/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~1…

    2022年3月27日
    131
  • goland2021激活码(注册激活)

    (goland2021激活码)2021最新分享一个能用的的激活码出来,希望能帮到需要激活的朋友。目前这个是能用的,但是用的人多了之后也会失效,会不定时更新的,大家持续关注此网站~https://javaforall.net/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~3Y…

    2022年3月30日
    1.4K

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号