日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

Hasor【付诸实践 02】SpringBoot 集成 Dataway 无代码接口工具配置及问题解决(含GreenPlum建表语句、demo源码、测试说明)

發布時間:2024/10/6 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Hasor【付诸实践 02】SpringBoot 集成 Dataway 无代码接口工具配置及问题解决(含GreenPlum建表语句、demo源码、测试说明) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

What

來自官網的描述:

  • 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 整合起來。
  • 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 打印執行的SQL語句--><dependency><groupId>com.github.gavlyukovskiy</groupId><artifactId>p6spy-spring-boot-starter</artifactId><version>1.7.1</version></dependency><!--數據庫相關--><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】

    server:port: 8088servlet:encoding:charset: utf-8force: true spring:application:name: dataWay-demo# 數據源配置datasource:url: jdbc:pivotal:greenplum://xxx.xx.xxx.xxx:2345;DatabaseName=gpdbusername: gpadminpassword: gpadmindriver-class-name: com.pivotal.jdbc.GreenplumDrivertype: com.alibaba.druid.pool.DruidDataSourcedruid:initial-size: 3min-idle: 3max-active: 10max-wait: 60000stat-view-servlet:login-username: adminlogin-password: admin # p6spy配置 decorator:datasource:p6spy:logging: slf4jlog-file: syp.loglog-format: executionTime:%(executionTime) | sql:%(sqlSingleLine) # dataWay核心配置 # 啟用 Dataway 功能(默認不啟用) HASOR_DATAQL_DATAWAY: true # 開啟 ui 管理功能(注意生產環境必須要設置為 false,否則會造成嚴重的生產安全事故) HASOR_DATAQL_DATAWAY_ADMIN: true # (可選)API工作路徑 HASOR_DATAQL_DATAWAY_API_URL: /api/ # (可選)ui 的工作路徑,只有開啟 ui 管理功能后才有效 HASOR_DATAQL_DATAWAY_UI_URL: /interface-ui/

    3.數據初始化

    以下是MySQL數據庫的初始化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 '狀態:-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 '修改時間',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 '狀態:-1-刪除, 0-草稿,1-發布,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 '原始查詢腳本,僅當類型為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 '發布時間(下線不更新)',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 發布歷史。'; create index idx_interface_release on interface_release (pub_api_id);

    【問題二】:> 1071 - Specified key was too long; max key length is 767 bytes
    【解決二】:解決:調整相應字段的長度。也可以參考這篇博文。

    這里再提供以下GreenPlum數據庫的初始化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.數據源初始化

    Spring Boot 和 Hasor 本是兩個獨立的容器框架,做整合之后為了使用 Dataway 的能力需要把 Spring 中的數據源設置到 Hasor 中。首先新建一個 Hasor 的 模塊,并且將其交給 Spring 管理。然后把數據源通過 Spring 注入進來。

    @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);} }

    應用在啟動過程中會看到 Hasor Boot 的歡迎信息

    6.測試

    根據配置的 ui 工作路徑 http://localhost:8088/interface-ui/ 訪問前端,賬號密碼均為 admin:

    頁面簡單說明【大家用一下就會了】:

    Dataway 提供了2中語言模式,可以使用強大的 DataQL 查詢語言,也可以直接使用 SQL 語言(在 Dataway 內部 SQL 語言也會被轉換為 DataQL 的形式執行。)添加一個DataQL并測試:

    這里只是簡單入門,接口開發要結合業務進行定制,Dataway的應用場景也要考慮號,DataQL及SQL相關開發具體可查看官方文檔【DataQL 聚合查詢引擎 SQL執行器】
    最后放幾個有用的連接:
    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

    總結

    以上是生活随笔為你收集整理的Hasor【付诸实践 02】SpringBoot 集成 Dataway 无代码接口工具配置及问题解决(含GreenPlum建表语句、demo源码、测试说明)的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。