# api_flow **Repository Path**: hanhuafeng/api_flow ## Basic Information - **Project Name**: api_flow - **Description**: 本项目是一个基于SpringBoot的第三方API接口接入平台,旨在为开发人员提供一个方便的接口接入平台,用户只需采用拖拉拽的形式,即可实现第三方API的对接。 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 15 - **Forks**: 4 - **Created**: 2023-05-31 - **Last Updated**: 2025-04-11 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # API FLOW ## 项目简介 本项目是一个基于SpringBoot的第三方API接口接入平台,旨在为开发人员提供一个方便的接口接入平台,用户只需采用拖拉拽的形式,即可实现第三方API的对接。 ## 项目技术选型 | 技术 | 说明 | 使用版本 | 官网 | |-------------|----------|---------|----------------------------------------| | LiteFlow | 国产规则引擎框架 | 2.11.3 | https://liteflow.yomahub.com/ | | SpringBoot | 容器+MVC框架 | 3.1.0 | https://spring.io/projects/spring-boot | | PostgreSql | 数据库 | 14 | https://www.postgresql.org/ | | MybatisPlus | ORM框架 | 3.5.3.2 | https://baomidou.com/ | | JAVA | 主开发语言 | 17 | https://www.java.com/zh-CN/ | | Knife4j | api文档 | 4.1.0 | https://www.xiaominfo.com/ | ## 关于kernel 项目核心kernel为`杭州智邮科技`自研核心包,作者为`4everlynn` ,详细文档请参考[说明文档](https://4everlynn.github.io/fatewa/posts/) ## 关于migrate ### 关于新增sql 项目新增sql的流程为 1. 切换到项目根目录下 2. mac下执行`./db.sh new 'api_flow_【sql文件名称】'`命令,windows下执行`db.bat new 'api_flow_【sql文件名称】'` 命令,请务必加上`api_flow_`前缀 3. 在`./migrate/respository/scripts`目录下找到新增的sql文件 4. -- //@UNDO上方为执行的sql语句,-- //@UNDO下方为回滚的sql语句 5. 执行`./db.sh up`命令,即可完成sql的执行 ### 关于回滚sql sql的回滚操作可通过`./db.sh down` 或者`./db.sh down 【回退步数】`实现,如`./db.sh down 1`即可回退一步,1默认可不写 ## 项目启动查询报错解决方案 因为mp对springboot3的支持暂时还不是那么的完善,导致查询时候会报异常,类似于 > Cause: java.lang.reflect.InaccessibleObjectException: Unable to make field protected java.lang.reflect.InvocationHandler java.lang.reflect.Proxy.h accessible: module java.base does not "opens java.lang.reflect" to unnamed module @7a419da4 解决方案为: 在启动的时候添加jvm参数 --add-opens java.base/java.lang.reflect=ALL-UNNAMED 具体报错的issue如下: https://github.com/baomidou/mybatis-plus/issues/5170 ## 定义注解 ### @RuleCmp 为了适配`组件自动上报`的功能,故在`LiteflowComponent`注解的基础上,进行了类似于继承的操作,推出了`@RuleCmp`,支持自动上报功能,用户可用@RuleCmp注解进行组件上报的功能,具体的使用方法如下: ```java // params表示当前组件需要前端设置的参数 // flowCmpId表示当前组件的id,cmpType表示当前组件的类型 // defaultText表示当前组件前端展示的默认文本 @RuleCmp(params = GetMethodBo.class, flowCmpId = "getComponent", cmpType = ElNameEnum.COMMON, defaultText = "GET") ``` ## 项目中命名的一些简称 | 简称 | 全称 | |-------------|----------| | cmp | component | ## 界面展示 ![img.png](pic/img.png) ![img.png](pic/img1.png) ![img.png](pic/img2.png) ![img.png](pic/img3.png) ![img.png](pic/img4.png) ![img.png](pic/img5.png) ![img.png](pic/img6.png)