最近在做数据中台资产管理系统,主要核心功能是数据资产发布成api或者文档,客户通过api直接获取发布的数据资产。需要一下一下几点功能:
1 界面sql编辑数据产品
2. 自动发布数据产品到api
调研后一段时间主要技术有Rocket-api和Dataway(hasor) https://www.hasor.net/doc/display/dataway
简介:
"Rocket-API" 基于spring boot 的API敏捷开发框架,通过写SQL或者 mongodb原始执行脚本代替CRUD完成开发。提升开发效率。
特性:
1. api配置化开发,不再定义Controller,Service,Dao,Mybatis,xml,Entity,VO等对象和方法.
2. 可视化界面,将入参自动封装到可执行脚本上,支持sql执行语句
3. 完全基于spring boot 2.x作为springboot项目的starter方式集成
4. 在线动态编译,无需重新,立即生效,多数据源操作(静态配置)
5.版本控制,历史记录,回滚功能
6. 代码提示:sql提示,语法提示
7. 远程一建发布到生产环境
8. 线上POSTMAN调试,保存POSTMAN信息或三方文档的自动生成,历史调用记录存储,回塑
9. 用户控制管理,安全性管理
10. 动态数据源管理
工作原理:
1. 将api信息保存到数据库,调用springboot的RequestMapperHandlerMapping.registerMapping/unregisterMapping 实现动态管理RequestMapping。
2. 依赖java 1.8的ScriptEngineManager方法,调用Groovy引擎,赋于数据处理能力以及使代码逻辑能够实现动态编译,发布,而不用重启
搭建:
源码地址: https://gitee.com/alenfive/rocket-api
需要下载2.3.5.RELEAS版本,最新亲测有bug
带入idea,修改application.yml文件的数据库信息
datasource:
url: jdbc:mysql://xxxxxxx:3317/dap?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
username: myuser
password: mypassword
driver-class-name: com.mysql.cj.jdbc.Driver
配置数据源:
@Component
public class DefaultDataSourceManager extends DataSourceManager {
@Autowired
private JdbcTemplate jdbcTemplate;
@Autowired
private MongoTemplate mongoTemplate;
@PostConstruct
public void init() {
Map<String, DataSourceDialect> dialects = new LinkedHashMap<>();
dialects.put("mysql",new MySQLDataSource(jdbcTemplate,true));
//dialects.put("postgres",new PostgreSQLDataSource(jdbcTemplate,false));
//dialects.put("oracle",new OracleDataSource(jdbcTemplate,true));
// dialects.put("mongodb",new MongoDataSource(mongoTemplate,true));
super.setDialectMap(dialects);
}
}
创建数据库:
CREATE TABLE `api_info` (
`id` varchar(45) NOT NULL,
`method` varchar(45) DEFAULT NULL,
`path` varchar(100) DEFAULT NULL,
`type` varchar(5) DEFAULT NULL COMMENT '类型:CODE,QL',
`service` varchar(45) DEFAULT NULL,
`editor` varchar(45) DEFAULT NULL,
`name` varchar(200) DEFAULT NULL,
`datasource` varchar(45) DEFAULT NULL,
`script` text,
`options` text,
`create_time` varchar(45) DEFAULT NULL,
`full_path` varchar(200) DEFAULT NULL,
`directory_id` varchar(45) DEFAULT NULL,
`update_time` varchar(45) DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `unique_path_method` (`service`,`full_path`,`method`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='路径明细';
CREATE TABLE `api_info_history` (
`id` varchar(45) NOT NULL,
`api_info_id` varchar(45) NOT NULL,
`method` varchar(45) DEFAULT NULL,
`path` varchar(100) DEFAULT NULL,
`type` varchar(5) DEFAULT NULL COMMENT '类型:CODE,QL',
`

本文介绍了如何构建一个数据中台资产管理系统,核心功能是通过Rocket-API和Dataway将数据资产发布为API。系统支持SQL编辑,自动发布,版本控制,用户管理,动态数据源等功能。通过SQL或MongoDB脚本快速开发API,提高开发效率,同时具备在线调试,历史记录,安全性控制等特性。
最低0.47元/天 解锁文章
1998

被折叠的 条评论
为什么被折叠?



