# Rapid-Backend-Framework
**Repository Path**: opening-backend-framework/rapid-backend-framework
## Basic Information
- **Project Name**: Rapid-Backend-Framework
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: main
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2025-11-23
- **Last Updated**: 2025-11-25
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# Rapid Backend Framework
[](LICENSE)
[](https://spring.io/projects/spring-boot)
[](https://www.oracle.com/java/)
[]()
## 项目简介
**Rapid Backend Framework (RBF)** 是一个基于Spring Boot 3.2的快速后端开发框架,旨在通过零代码或低代码的方式快速构建复杂的后端服务。
### 核心特性
- 🚀 **零代码CRUD**: 集成APIJSON,无需编写代码即可实现数据库CRUD操作
- 🎯 **动态API**: 集成Magic-API,支持通过脚本动态创建和管理业务接口
- ⚡ **流程编排**: 内置强大的流程编排引擎,可视化定义复杂业务流程
- 🔌 **模块化设计**: 各功能模块独立,可按需引入
- 📦 **开箱即用**: 提供Spring Boot Starter,一键集成所有功能
- 🛠️ **易于扩展**: 插件化架构,支持自定义节点和功能扩展
### 技术栈
- **Java 17**
- **Spring Boot 3.2.0**
- **APIJSON 5.4.0** - 零代码接口框架
- **Magic-API 2.2.2** - 动态脚本API框架
- **流程编排引擎** - 自研流程编排引擎
- **H2/MySQL** - 数据库支持
## 最新进展
### 🎉 P1功能完善已完成 (2025-11-23)
#### ✅ 已完成任务
**任务4: Magic-API功能补全** (100%)
- ✅ 增强参数验证(支持枚举值验证)
- ✅ 新增5个Magic-API专用错误码(RBF-MAGIC-4001到4005)
- ✅ 完善元数据管理、执行配置和缓存刷新机制
**任务6: 更多实用节点** (100%)
- ✅ 新增30个实用节点,覆盖4大类别:
- 文件操作节点(8个):读写、复制、移动、删除等
- JSON操作节点(6个):解析、查询、合并、转换等
- 邮件发送节点(1个):支持HTML、附件、多收件人
- 工具类节点(15个):时间处理、字符串操作、编码解码等
#### 📊 代码统计
- 新增Java类:4个(~2000行代码)
- 修改Java类:3个
- 新增Maven依赖:2个(json-path、spring-boot-starter-mail,均为可选)
- 节点总数:**从5个增加到35个**(增长600%)
#### ❌ 取消任务
**任务5: FlowGram.ai深度集成** (已取消)
- **原因**: FlowGram是React组件库,与Vue 3技术栈不兼容
- **替代方案**: 增强现有Vue画布或迁移到Vue Flow
- **详情**: 参见 [FLOWGRAM_INTEGRATION.md](rapid-backend-admin/src/main/resources/static/flow-editor/FLOWGRAM_INTEGRATION.md)
#### 📄 详细报告
- [P1功能完善最终报告](P1功能完善最终报告.md)
- [P1功能完善开发完成报告](P1功能完善开发完成报告.md)
## 快速开始
### 方式一:使用Starter(推荐)
1. 添加Maven依赖:
```xml
com.rapid
rapid-backend-spring-boot-starter
1.0.0-SNAPSHOT
```
2. 配置application.yml:
```yaml
spring:
datasource:
url: jdbc:mysql://localhost:3306/your_db
username: root
password: your_password
rapid:
backend:
enabled: true
```
3. 启动应用即可使用!
### 方式二:运行Demo项目
```bash
git clone https://github.com/rapid-backend/rapid-backend-framework.git
cd rapid-backend-framework/rapid-backend-demo
mvn spring-boot:run
```
访问 http://localhost:8080
详细使用说明请参考[快速开始指南](快速开始.md)
## 项目结构
```xml
rapid-backend-framework/
├── rapid-backend-core/ # 核心模块
├── rapid-backend-apijson/ # APIJSON适配器
├── rapid-backend-magicapi/ # Magic-API适配器
├── rapid-backend-flow/ # 流程编排引擎
├── rapid-backend-admin/ # 管理界面
└── rapid-backend-spring-boot-starter/ # Starter入口
```
## 配置规范
### 基础配置
```yaml
# application.yml 配置模板
rapid:
backend:
enabled: true
base-path: /rapid
admin:
enabled: true
apijson:
enabled: true
base-path: /data
auto-discover-tables: true
magic-api:
enabled: true
base-path: /business
flow-engine:
enabled: true
base-path: /flow
```
### 数据源配置
```yaml
spring:
datasource:
url: jdbc:mysql://localhost:3306/database
username: user
password: pass
redis:
host: localhost
port: 6379
```
## 核心接口定义
### 流程引擎接口
```java
// 流程执行接口
public interface FlowEngine {
FlowResult execute(String flowId, Map input);
FlowResult execute(String flowId, Map input, FlowExecutionConfig config);
}
// 节点提供器接口
public interface FlowNodeProvider {
String getNamespace();
List getNodeDefinitions();
Object execute(FlowNode node, FlowContext context) throws Exception;
}
```
### 数据模型定义
```java
// 流程定义模型
@Data
public class FlowDefinition {
private String id;
private String name;
private String description;
private List nodes;
private List connections;
private Map variables;
}
// 节点定义模型
@Data
public class FlowNode {
private String id;
private String namespace;
private String operation;
private Map inputs;
private Map config;
}
```
## 开发任务分解
### Phase 1: 基础框架 (6周)
**目标**: 最小可行产品
#### 任务清单:
1. **创建项目结构**
- 设置Maven多模块
- 配置依赖管理
- 建立代码规范
2. **核心模块开发**
- 实现RapidBackendProperties配置类
- 实现RapidBackendAutoConfiguration自动配置
- 创建基础异常处理
3. **APIJSON集成**
- 集成APIJSON依赖
- 实现表发现服务TableDiscoveryService
- 创建ApiJsonNodeProvider节点提供器
4. **流程引擎基础**
- 实现FlowEngine基础执行引擎
- 开发BasicNodeProvider基础节点
- 创建流程定义模型
5. **Starter打包**
- 配置spring.factories
- 创建条件化配置
- 编写使用文档
#### 验收标准:
- [ ] Starter可成功引入Spring Boot项目
- [ ] APIJSON自动配置并暴露REST接口
- [ ] 基础流程引擎可执行简单流程
- [ ] 提供完整示例项目
### Phase 2: 功能增强 (6周)
**目标**: 核心功能完善
#### 任务清单:
1. **Magic-API集成**
- 集成Magic-API依赖
- 实现MagicApiNodeProvider
- 开发脚本发现服务
2. **流程引擎增强**
- 实现EnhancedFlowEngine
- 添加错误处理和重试机制
- 开发流程验证功能
3. **高级节点开发**
- 实现DataTransformNodeProvider数据转换节点
- 实现HttpNodeProvider HTTP请求节点
- 开发条件分支和循环节点
4. **性能优化**
- 实现流程缓存机制
- 添加异步执行支持
- 优化数据库查询
#### 验收标准:
- [ ] Magic-API完整集成,支持脚本动态发现
- [ ] 流程引擎支持复杂业务流程
- [ ] 提供数据转换和外部服务集成节点
- [ ] 性能基准测试达标
### Phase 3: 管理界面 (8周)
**目标**: 生产环境就绪
#### 任务清单:
1. **管理后端API**
- 实现AdminController管理接口
- 开发流程定义CRUD接口
- 创建执行历史查询接口
2. **数据持久化**
- 设计并创建数据库表结构
- 实现FlowPersistenceService持久化服务
- 开发版本管理功能
3. **安全权限**
- 集成Spring Security
- 实现数据权限控制
- 开发操作审计功能
4. **管理前端**
- 搭建Vue 3前端项目
- 实现流程设计器组件
- 开发监控仪表板
#### 验收标准:
- [ ] 完整的管理界面,支持可视化流程设计
- [ ] 流程定义和执行的持久化存储
- [ ] 完整的权限控制和安全性
- [ ] 系统监控和健康检查
### Phase 4: 企业级特性 (8周)
**目标**: 企业级扩展
#### 任务清单:
1. **性能优化**
- 实现流程编译和缓存
- 优化数据库连接池
- 添加查询优化服务
2. **分布式支持**
- 集成分布式事务
- 实现分布式锁服务
- 开发集群配置支持
3. **高可用保障**
- 实现健康检查端点
- 添加性能监控指标
- 开发故障恢复机制
4. **扩展生态**
- 设计插件系统架构
- 实现消息队列集成
- 开发自定义节点SDK
#### 验收标准:
- [ ] 性能基准测试报告达标
- [ ] 分布式事务支持完善
- [ ] 高可用集群部署验证
- [ ] 插件扩展机制完整
## 代码生成模板
### Spring Boot Starter配置类
```java
@Configuration
@ConditionalOnProperty(prefix = "rapid.backend", name = "enabled", havingValue = "true")
@EnableConfigurationProperties(RapidBackendProperties.class)
public class RapidBackendAutoConfiguration {
@Bean
@ConditionalOnMissingBean
public FlowEngine flowEngine() {
return new DefaultFlowEngine();
}
@Bean
@ConditionalOnBean(DataSource.class)
@ConditionalOnProperty(prefix = "rapid.backend.apijson", name = "enabled", havingValue = "true")
public TableDiscoveryService tableDiscoveryService(DataSource dataSource) {
return new TableDiscoveryService(dataSource);
}
}
```
### 节点提供器模板
```java
@Component
public class {ServiceName}NodeProvider implements FlowNodeProvider {
@Override
public String getNamespace() {
return "{namespace}";
}
@Override
public List getNodeDefinitions() {
return Arrays.asList(
FlowNodeDefinition.builder()
.namespace("{namespace}")
.operation("{operation}")
.name("{节点名称}")
.description("{节点描述}")
.addInputParameter("{参数名}", "{参数描述}", {参数类型}.class, {是否必填})
.build()
);
}
@Override
public Object execute(FlowNode node, FlowContext context) throws Exception {
// 节点执行逻辑
return null;
}
}
```
## 数据库设计
### 核心表结构
```sql
-- 流程定义表
CREATE TABLE rbf_flow_definition (
id VARCHAR(64) PRIMARY KEY,
name VARCHAR(255) NOT NULL,
definition_json TEXT NOT NULL,
version VARCHAR(32) NOT NULL,
status VARCHAR(32) DEFAULT 'DRAFT',
created_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);
-- 流程执行表
CREATE TABLE rbf_flow_execution (
id VARCHAR(64) PRIMARY KEY,
flow_id VARCHAR(64) NOT NULL,
status VARCHAR(32) DEFAULT 'RUNNING',
input_data TEXT,
output_data TEXT,
start_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
end_time TIMESTAMP NULL
);
```
## 测试规范
### 单元测试模板
```java
@SpringBootTest
class {ServiceName}Test {
@Test
void test{MethodName}() {
// 给定测试条件
// 执行测试方法
// 验证结果
}
}
```
### 集成测试配置
```java
@TestConfiguration
public class TestConfig {
@Bean
@Primary
public DataSource dataSource() {
// 测试数据源配置
}
}
```
## 部署配置
### Docker配置
```dockerfile
FROM openjdk:17-jdk-slim
COPY target/*.jar app.jar
EXPOSE 8080
ENTRYPOINT ["java", "-jar", "/app.jar"]
```
### Kubernetes配置
```yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: rbf-service
spec:
replicas: 3
template:
spec:
containers:
- name: rbf
image: rbf:latest
ports:
- containerPort: 8080
env:
- name: SPRING_PROFILES_ACTIVE
value: "prod"
```
## 错误处理规范
### 异常类定义
```java
public class RapidBackendException extends RuntimeException {
private final String errorCode;
private final String errorMessage;
public RapidBackendException(ErrorCode errorCode) {
this.errorCode = errorCode.getCode();
this.errorMessage = errorCode.getMessage();
}
}
```
### 统一响应格式
```java
@Data
public class ApiResponse {
private boolean success;
private String code;
private String message;
private T data;
private long timestamp;
}
```
## 性能优化指南
### 缓存配置
```java
@Configuration
@EnableCaching
public class CacheConfig {
@Bean
public CacheManager cacheManager() {
CaffeineCacheManager cacheManager = new CaffeineCacheManager();
cacheManager.setCaffeine(Caffeine.newBuilder()
.maximumSize(1000)
.expireAfterWrite(10, TimeUnit.MINUTES));
return cacheManager;
}
}
```
### 数据库优化
```sql
-- 为常用查询字段添加索引
CREATE INDEX idx_flow_status ON rbf_flow_execution(status);
CREATE INDEX idx_flow_start_time ON rbf_flow_execution(start_time);
```
## 监控和日志
### 监控配置
```yaml
management:
endpoints:
web:
exposure:
include: health,metrics,info
endpoint:
health:
show-details: always
```
### 日志配置
```yaml
logging:
level:
com.rapid.backend: DEBUG
file:
name: logs/rbf.log
pattern:
file: "%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n"
```
## 安全规范
### 安全配置
```java
@Configuration
@EnableWebSecurity
public class SecurityConfig {
@Bean
public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
http.authorizeRequests()
.antMatchers("/rapid-admin/**").authenticated()
.anyRequest().permitAll();
return http.build();
}
}
```
## 扩展开发指南
### 自定义节点开发步骤
1. 实现FlowNodeProvider接口
2. 定义节点输入输出参数
3. 实现节点执行逻辑
4. 注册为Spring Bean
5. 测试节点功能
### 插件开发模板
```java
public class CustomPlugin implements RapidBackendPlugin {
@Override
public String getName() {
return "custom-plugin";
}
@Override
public void initialize(RapidBackendContext context) {
// 插件初始化逻辑
}
}
```
## 常见问题解决
### 配置问题
**问题**: Starter不生效
**解决**: 检查spring.factories配置和条件注解
### 性能问题
**问题**: 流程执行缓慢
**解决**: 启用流程缓存,优化数据库查询
### 集成问题
**问题**: 与现有系统冲突
**解决**: 调整base-path配置,使用自定义命名空间
---
## 文档更新记录
- 创建日期: 2024-01-15
- 最后更新: 2024-01-15
- 版本: v1.0
- 维护者: AI开发助手