javascript
Hasor【付诸实践 02】SpringBoot 集成 Dataway 无代码接口工具配置及问题解决(含GreenPlum建表语句、demo源码、测试说明)
What
來自官網(wǎng)的描述:
use
1.依賴
SpringBoot版本:2.5.0 【這里只貼出主要的依賴】
<!--hasor核心依賴--><dependency><groupId>net.hasor</groupId><artifactId>hasor-spring</artifactId><version>4.2.5</version></dependency><dependency><groupId>net.hasor</groupId><artifactId>hasor-dataway</artifactId><version>4.2.5</version></dependency><!--p6spy 打印執(zhí)行的SQL語句--><dependency><groupId>com.github.gavlyukovskiy</groupId><artifactId>p6spy-spring-boot-starter</artifactId><version>1.7.1</version></dependency><!--數(shù)據(jù)庫相關(guān)--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-jdbc</artifactId></dependency><dependency><groupId>org.postgresql</groupId><artifactId>postgresql</artifactId><scope>runtime</scope></dependency><dependency><groupId>com.jdbc</groupId><artifactId>greenplum</artifactId><version>5.1.4</version></dependency><dependency><groupId>com.alibaba</groupId><artifactId>druid-spring-boot-starter</artifactId><version>1.1.10</version></dependency>2.配置
【問題一】:接口顯示的中文亂碼。
【解決一】:配置【servlet.encoding.charset】和【servlet.encoding.force】
3.數(shù)據(jù)初始化
以下是MySQL數(shù)據(jù)庫的初始化SQL:
CREATE TABLE interface_info (api_id varchar(64) NOT NULL COMMENT 'ID',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 '狀態(tài):-1-刪除, 0-草稿,1-發(fā)布,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 '接口的請求/響應(yīng)數(shù)據(jù)結(jié)構(gòu)',api_sample mediumtext NOT NULL COMMENT '請求/響應(yīng)/請求頭樣本數(shù)據(jù)',api_option mediumtext NOT NULL COMMENT '擴(kuò)展配置信息',api_create_time varchar(32) NOT NULL COMMENT '創(chuàng)建時間',api_gmt_time varchar(32) NOT NULL COMMENT '修改時間',PRIMARY KEY (api_id),UNIQUE KEY uk_interface_info (api_path) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='Dataway 中的API';CREATE TABLE interface_release (pub_id varchar(64) NOT NULL COMMENT 'Publish ID',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 '狀態(tài):-1-刪除, 0-草稿,1-發(fā)布,2-有變更,3-禁用',pub_comment varchar(255) NOT 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 '原始查詢腳本,僅當(dāng)類型為SQL時不同',pub_schema mediumtext NOT NULL COMMENT '接口的請求/響應(yīng)數(shù)據(jù)結(jié)構(gòu)',pub_sample mediumtext NOT NULL COMMENT '請求/響應(yīng)/請求頭樣本數(shù)據(jù)',pub_option mediumtext NOT NULL COMMENT '擴(kuò)展配置信息',pub_release_time varchar(32) NOT NULL COMMENT '發(fā)布時間(下線不更新)',PRIMARY KEY (pub_id),KEY idx_interface_release_api (pub_api_id),KEY idx_interface_release_path (pub_path) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='Dataway API 發(fā)布?xì)v史。'; create index idx_interface_release on interface_release (pub_api_id);【問題二】:> 1071 - Specified key was too long; max key length is 767 bytes
【解決二】:解決:調(diào)整相應(yīng)字段的長度。也可以參考這篇博文。
這里再提供以下GreenPlum數(shù)據(jù)庫的初始化SQL:
CREATE TABLE interface_info (api_id VARCHAR ( 64 ),api_method VARCHAR ( 12 ),api_path VARCHAR ( 512 ),api_status VARCHAR ( 4 ),api_comment VARCHAR ( 255 ),api_type VARCHAR ( 24 ),api_script TEXT,api_schema TEXT,api_sample TEXT,api_option TEXT,api_create_time VARCHAR ( 32 ),api_gmt_time VARCHAR ( 32 ) ); CREATE TABLE interface_release (pub_id VARCHAR ( 64 ),pub_api_id VARCHAR ( 64 ),pub_method VARCHAR ( 12 ),pub_path VARCHAR ( 512 ),pub_status VARCHAR ( 4 ),pub_comment VARCHAR ( 255 ),pub_type VARCHAR ( 24 ),pub_script TEXT,pub_script_ori TEXT,pub_schema TEXT,pub_sample TEXT,pub_option TEXT,pub_release_time VARCHAR ( 32 ) ); CREATE INDEX idx_interface_release ON interface_release ( pub_api_id );4.數(shù)據(jù)源初始化
Spring Boot 和 Hasor 本是兩個獨(dú)立的容器框架,做整合之后為了使用 Dataway 的能力需要把 Spring 中的數(shù)據(jù)源設(shè)置到 Hasor 中。首先新建一個 Hasor 的 模塊,并且將其交給 Spring 管理。然后把數(shù)據(jù)源通過 Spring 注入進(jìn)來。
@DimModule @Component public class ExampleModule implements SpringModule {@Autowiredprivate DataSource dataSource = null;@Overridepublic void loadModule(ApiBinder apiBinder) throws Throwable {apiBinder.installModule(new JdbcModule(Level.Full, this.dataSource));} }5.啟動類添加注解
兩個注解 @EnableHasor() 和 @EnableHasorWeb()
@EnableHasor() @EnableHasorWeb() @SpringBootApplication(scanBasePackages = { "net.example.hasor" }) public class ExampleApplication {public static void main(String[] args) {SpringApplication.run(ExampleApplication.class, args);} }應(yīng)用在啟動過程中會看到 Hasor Boot 的歡迎信息
6.測試
根據(jù)配置的 ui 工作路徑 http://localhost:8088/interface-ui/ 訪問前端,賬號密碼均為 admin:
頁面簡單說明【大家用一下就會了】:
Dataway 提供了2中語言模式,可以使用強(qiáng)大的 DataQL 查詢語言,也可以直接使用 SQL 語言(在 Dataway 內(nèi)部 SQL 語言也會被轉(zhuǎn)換為 DataQL 的形式執(zhí)行。)添加一個DataQL并測試:
這里只是簡單入門,接口開發(fā)要結(jié)合業(yè)務(wù)進(jìn)行定制,Dataway的應(yīng)用場景也要考慮號,DataQL及SQL相關(guān)開發(fā)具體可查看官方文檔【DataQL 聚合查詢引擎 SQL執(zhí)行器】
最后放幾個有用的連接:
Dataway 官方手冊:https://www.hasor.net/web/dataway/about.html
Dataway 在 OSC 上的項目地址,歡迎收藏:https://www.oschina.net/p/dataway
DataQL 手冊地址:https://www.hasor.net/web/dataql/what_is_dataql.html
Hasor 項目的首頁:https://www.hasor.net/web/index.html
總結(jié)
以上是生活随笔為你收集整理的Hasor【付诸实践 02】SpringBoot 集成 Dataway 无代码接口工具配置及问题解决(含GreenPlum建表语句、demo源码、测试说明)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Hasor【付诸实践 01】低代码框架
- 下一篇: MySQL【付诸实践 01】Linux