最后附项目源码, 开箱即用
访问地址
http://127.0.0.1:8101/interface-ui/#/
效果图
具体怎么用, 大家还是看官网,中文文档
https://www.dataql.net/docs/dataway/ui/ui-list
项目结构
代码
DataWayApplication
package com.zero.dataway;import net.hasor.spring.boot.EnableHasor;
import net.hasor.spring.boot.EnableHasorWeb;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;@EnableHasor
@EnableHasorWeb
@SpringBootApplication(scanBasePackages = {"com.zero.hasor"})
public class DataWayApplication {public static void main(String[] args) {SpringApplication.run(DataWayApplication.class, args);}
}
HasorModule
package com.zero.hasor;import net.hasor.core.ApiBinder;
import net.hasor.core.DimModule;
import net.hasor.db.JdbcModule;
import net.hasor.db.Level;
import net.hasor.spring.SpringModule;
import org.springframework.stereotype.Component;import javax.annotation.Resource;
import javax.sql.DataSource;@DimModule
@Component
public class HasorModule implements SpringModule {@Resourceprivate DataSource dataSource;@Overridepublic void loadModule (ApiBinder apiBinder) throws Throwable {apiBinder.installModule(new JdbcModule(Level.Full, this.dataSource));}
}
application.yml
#
server:port: 8101
spring:application:name: dataway-demodatasource:url: jdbc:mysql://localhost:3306/test?characterEncoding=utf-8&useSSL=falseusername: rootpassword: rootdriver-class-name: com.mysql.jdbc.Drivertype: com.alibaba.druid.pool.DruidDataSource# druiddruid:initial-size: 3min-idle: 3max-active: 10max-wait: 60000stat-view-servlet:login-username: adminlogin-password: adminfilter:stat:log-slow-sql: trueslow-sql-millis: 1# 是否启用 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
pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.zero</groupId><artifactId>dataway-demo</artifactId><version>0.0.1</version><properties><maven.compiler.source>8</maven.compiler.source><maven.compiler.target>8</maven.compiler.target></properties><parent><groupId>org.springframework.boot</groupId><version>2.2.7.RELEASE</version><artifactId>spring-boot-starter-parent</artifactId></parent><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId><version>2.2.12.RELEASE</version></dependency><dependency><groupId>net.hasor</groupId><artifactId>hasor-spring</artifactId><version>4.1.6</version></dependency><dependency><groupId>net.hasor</groupId><artifactId>hasor-dataway</artifactId><version>4.1.6</version></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.49</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-jdbc</artifactId></dependency><dependency><groupId>com.alibaba</groupId><artifactId>druid-spring-boot-starter</artifactId><version>1.2.2</version></dependency></dependencies></project>
初始化脚本
# select * from interface_info;/*访问地址http://127.0.0.1:8101/interface-ui/#/
*/-- auto-generated definition
create table interface_info
(api_id int auto_increment comment 'ID'primary key,api_method varchar(12) not null comment 'HttpMethod:GET、PUT、POST',api_path varchar(512) not null comment '拦截路径',api_status varchar(4) not null comment '状态:-1-删除, 0-草稿,1-发布,2-有变更,3-禁用',api_comment varchar(255) not null comment '注释',api_type varchar(24) not null comment '脚本类型:SQL、DataQL',api_script mediumtext not null comment '查询脚本:xxxxxxx',api_schema mediumtext not null comment '接口的请求/响应数据结构',api_sample mediumtext not null comment '请求/响应/请求头样本数据',api_option mediumtext not null comment '扩展配置信息',api_create_time varchar(32) not null comment '创建时间',api_gmt_time varchar(32) not null comment '修改时间',constraint uk_interface_infounique (api_path)
)comment 'Dataway 中的API';-- auto-generated definition
create table interface_release
(pub_id int auto_increment comment 'Publish ID'primary key,pub_api_id varchar(64) 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 varchar(4) not null comment '状态:-1-删除, 0-草稿,1-发布,2-有变更,3-禁用',pub_comment varchar(255) null comment '注释',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 not null comment '接口的请求/响应数据结构',pub_sample mediumtext not null comment '请求/响应/请求头样本数据',pub_option mediumtext not null comment '扩展配置信息',pub_release_time varchar(32) not null comment '发布时间(下线不更新)'
)comment 'Dataway API 发布历史。';create index idx_interface_release_apion interface_release (pub_api_id);create index idx_interface_release_pathon interface_release (pub_path);
项目源码
【金山文档 | WPS云文档】 dataway-demo
https://kdocs.cn/l/cm2uYUv7cKXO