# 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://img.shields.io/badge/license-MIT-blue.svg)](LICENSE) [![Spring Boot](https://img.shields.io/badge/Spring%20Boot-3.2.0-brightgreen.svg)](https://spring.io/projects/spring-boot) [![Java](https://img.shields.io/badge/Java-17-orange.svg)](https://www.oracle.com/java/) [![Build Status](https://img.shields.io/badge/build-passing-brightgreen.svg)]() ## 项目简介 **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开发助手