日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 前端技术 > javascript >内容正文

javascript

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

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

What

來(lái)自官網(wǎng)的描述:

  • Dataway 是基于 DataQL 服務(wù)聚合能力,為應(yīng)用提供的一個(gè)接口配置工具。使得使用者無(wú)需開(kāi)發(fā)任何代碼就配置一個(gè)滿足需求的接口。整個(gè)接口配置、測(cè)試、冒煙、發(fā)布。一站式都通過(guò) Dataway 提供的 UI 界面完成。UI 會(huì)以 Jar 包方式提供并集成到應(yīng)用中并和應(yīng)用共享同一個(gè) http 端口,應(yīng)用無(wú)需單獨(dú)為 Dataway 開(kāi)辟新的管理端口。
  • 這種內(nèi)嵌集成方式模式的優(yōu)點(diǎn)是,可以使得大部分老項(xiàng)目都可以在無(wú)侵入的情況下直接應(yīng)用 Dataway。進(jìn)而改進(jìn)老項(xiàng)目的迭代效率,大大減少企業(yè)項(xiàng)目研發(fā)成本。
  • Dataway 工具化的提供 DataQL 配置能力。這種研發(fā)模式的變革使得,相當(dāng)多的需求開(kāi)發(fā)場(chǎng)景只需要配置即可完成交付。從而避免了從數(shù)據(jù)存取到前端接口之間的一系列開(kāi)發(fā)任務(wù),例如:Mapper、BO、VO、DO、DAO、Service、Controller 統(tǒng)統(tǒng)不在需要。
  • Dataway 是 Hasor 生態(tài)中的一員,因此在 Spring 中使用 Dataway 首先要做的就是打通兩個(gè)生態(tài)。根據(jù)官方文檔中推薦的方式我們將 Hasor 和 Spring Boot 整合起來(lái)。
  • 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語(yǔ)句--><dependency><groupId>com.github.gavlyukovskiy</groupId><artifactId>p6spy-spring-boot-starter</artifactId><version>1.7.1</version></dependency><!--數(shù)據(jù)庫(kù)相關(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.配置

    【問(wèn)題一】:接口顯示的中文亂碼。
    【解決一】:配置【servlet.encoding.charset】和【servlet.encoding.force】

    server:port: 8088servlet:encoding:charset: utf-8force: true spring:application:name: dataWay-demo# 數(shù)據(jù)源配置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 功能(默認(rèn)不啟用) HASOR_DATAQL_DATAWAY: true # 開(kāi)啟 ui 管理功能(注意生產(chǎn)環(huán)境必須要設(shè)置為 false,否則會(huì)造成嚴(yán)重的生產(chǎn)安全事故) HASOR_DATAQL_DATAWAY_ADMIN: true # (可選)API工作路徑 HASOR_DATAQL_DATAWAY_API_URL: /api/ # (可選)ui 的工作路徑,只有開(kāi)啟 ui 管理功能后才有效 HASOR_DATAQL_DATAWAY_UI_URL: /interface-ui/

    3.數(shù)據(jù)初始化

    以下是MySQL數(shù)據(jù)庫(kù)的初始化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 '接口的請(qǐng)求/響應(yīng)數(shù)據(jù)結(jié)構(gòu)',api_sample mediumtext NOT NULL COMMENT '請(qǐng)求/響應(yīng)/請(qǐng)求頭樣本數(shù)據(jù)',api_option mediumtext NOT NULL COMMENT '擴(kuò)展配置信息',api_create_time varchar(32) NOT NULL COMMENT '創(chuàng)建時(shí)間',api_gmt_time varchar(32) NOT NULL COMMENT '修改時(shí)間',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時(shí)不同',pub_schema mediumtext NOT NULL COMMENT '接口的請(qǐng)求/響應(yīng)數(shù)據(jù)結(jié)構(gòu)',pub_sample mediumtext NOT NULL COMMENT '請(qǐng)求/響應(yīng)/請(qǐng)求頭樣本數(shù)據(jù)',pub_option mediumtext NOT NULL COMMENT '擴(kuò)展配置信息',pub_release_time varchar(32) NOT NULL COMMENT '發(fā)布時(shí)間(下線不更新)',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);

    【問(wèn)題二】:> 1071 - Specified key was too long; max key length is 767 bytes
    【解決二】:解決:調(diào)整相應(yīng)字段的長(zhǎng)度。也可以參考這篇博文。

    這里再提供以下GreenPlum數(shù)據(jù)庫(kù)的初始化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 本是兩個(gè)獨(dú)立的容器框架,做整合之后為了使用 Dataway 的能力需要把 Spring 中的數(shù)據(jù)源設(shè)置到 Hasor 中。首先新建一個(gè) Hasor 的 模塊,并且將其交給 Spring 管理。然后把數(shù)據(jù)源通過(guò) Spring 注入進(jìn)來(lái)。

    @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.啟動(dòng)類添加注解

    兩個(gè)注解 @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)用在啟動(dòng)過(guò)程中會(huì)看到 Hasor Boot 的歡迎信息

    6.測(cè)試

    根據(jù)配置的 ui 工作路徑 http://localhost:8088/interface-ui/ 訪問(wèn)前端,賬號(hào)密碼均為 admin:

    頁(yè)面簡(jiǎn)單說(shuō)明【大家用一下就會(huì)了】:

    Dataway 提供了2中語(yǔ)言模式,可以使用強(qiáng)大的 DataQL 查詢語(yǔ)言,也可以直接使用 SQL 語(yǔ)言(在 Dataway 內(nèi)部 SQL 語(yǔ)言也會(huì)被轉(zhuǎn)換為 DataQL 的形式執(zhí)行。)添加一個(gè)DataQL并測(cè)試:

    這里只是簡(jiǎn)單入門(mén),接口開(kāi)發(fā)要結(jié)合業(yè)務(wù)進(jìn)行定制,Dataway的應(yīng)用場(chǎng)景也要考慮號(hào),DataQL及SQL相關(guān)開(kāi)發(fā)具體可查看官方文檔【DataQL 聚合查詢引擎 SQL執(zhí)行器】
    最后放幾個(gè)有用的連接:
    Dataway 官方手冊(cè):https://www.hasor.net/web/dataway/about.html
    Dataway 在 OSC 上的項(xiàng)目地址,歡迎收藏:https://www.oschina.net/p/dataway
    DataQL 手冊(cè)地址:https://www.hasor.net/web/dataql/what_is_dataql.html
    Hasor 項(xiàng)目的首頁(yè):https://www.hasor.net/web/index.html

    總結(jié)

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

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。