Dataway介绍

Dataway 是基于 DataQL 服务聚合能力,为应用提供的一个接口配置工具。使得使用者无需开发任何代码就配置一个满足需求的接口。整个接口配置、测试、冒烟、发布。一站式都通过 Dataway 提供的 UI 界面完成。UI 会以 Jar 包方式提供并集成到应用中并和应用共享同一个 http 端口,应用无需单独为 Dataway 开辟新的管理端口。

这种内嵌集成方式模式的优点是,可以使得大部分老项目都可以在无侵入的情况下直接应用 Dataway。进而改进老项目的迭代效率,大大减少企业项目研发成本。

Dataway 工具化的提供 DataQL 配置能力。这种研发模式的变革使得,相当多的需求开发场景只需要配置即可完成交付。

1、新建一个springboot工程、添加maven依赖

net.hasor      hasor-spring      4.1.3net.hasor      hasor-dataway      4.1.3-fix20200414mysql      mysql-connector-java      5.1.48org.springframework.boot      spring-boot-starter-jdbc    org.springframework.boot      spring-boot-starter-web    com.alibaba      druid-spring-boot-starter      1.1.22

2、配置Dataway和创建2张基础表

dataway 会提供一个界面让我们配置接口,这一点类似 Swagger 只要jar包集成就可以实现接口配置。找到我们 springboot 项目的配置文件 application.properties




springboot接收plc消息 springboot接收串口数据_boot spring 接口接收数据


mysql表结构的位置可以在依赖的jar包上图的位置复制,文章末位源码项目中我整理成一个sql文件,下载代码即可看到。

application.properties配置内容


springboot接收plc消息 springboot接收串口数据_spring_02


3、配置中数据源采用druid+mysql+spring-boot-starter-jdbc的方式

4、将数据源设置得到Hasor容器中

Spring Boot 和 Hasor 本是两个独立的容器框架,我们做整合之后为了使用 Dataway 的能力需要把 Spring 中的数据源设置到 Hasor 中。

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

项目启动的时候会调用loadModule方法,将datasource设置到Hasor中

5、添加springboot启动类

@EnableHasor()@EnableHasorWeb()@SpringBootApplication(scanBasePackages = {"com.seejoke.dataway"})public class DataWayApplication {  public static void main(String[] args) {    SpringApplication.run(DataWayApplication.class, args);  }}

这一步非常简单,只需要再springboot启动类上面增加2个注解即可。

6、启动应用


springboot接收plc消息 springboot接收串口数据_bc_03


在控制台看到上面信息后,dataway api workAt /api/就标识配置生效了,我们在浏览器中访问

"http://127.0.0.1:8081/interface-ui/"就可以看到期待已久的界面了,ps:访问地址记得带上最后的斜杠


springboot接收plc消息 springboot接收串口数据_boot spring 接口接收数据_04


6、新建一个接口

Dataway 提供了2种语言模式,我们可以使用强大的 DataQL 查询语言,也可以直接使用 SQL 语言(在 Dataway 内部 SQL 语言也会被转换为 DataQL 的形式执行。)


springboot接收plc消息 springboot接收串口数据_boot spring 接口接收数据_05


我们尝试在sql模式下执行一条sql语句,立刻就可以看到这条sql的查询结果了

var query = @@sql()return query()


springboot接收plc消息 springboot接收串口数据_bc_06


执行后看到结果,我们可以将该接口保存

save===>test====>public发布后就可以访问生成的rest api了

访问刚才新建的api


springboot接收plc消息 springboot接收串口数据_bc_07


为了测试方便,我创建了一个get方式的rest api,访问结果如上图。

总结

经过上面的几个步骤我们介绍了如何基于SpringBoot项目使用 Dataway 来简单的配置接口。Dataway 的方式确实给人耳目一新,一个接口竟然可以如此简单的配置出来无需开发任何一行代码,也不需要做任何 Mapping 实体映射绑定。