# panda-baas **Repository Path**: digithub/panda-baas ## Basic Information - **Project Name**: panda-baas - **Description**: zero code db restful - **Primary Language**: Java - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-08-03 - **Last Updated**: 2025-08-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # APIJSON 重构版本 ## 架构概述 本重构版本按照分层架构设计,实现了明确的职责分离和可扩展性: ### 核心分层 1. **请求解析层** (`RequestParser`) - 解析APIJSON请求结构 2. **语义校验/鉴权层** (`SecurityValidator`) - 权限验证和语义校验 3. **查询计划层** (`QueryPlanner`) - 生成中间表示(IR) 4. **SQL生成层** (`SqlGenerator`) - 将查询计划转换为SQL 5. **执行层** (`SqlExecutor`) - 执行SQL语句 6. **结果映射层** (`ResultMapper`) - 映射数据库结果 7. **响应组装层** (`ResponseAssembler`) - 组装最终响应 8. **错误与审计层** (`AuditLogger`) - 日志记录和审计 ### 方言策略 通过 `SqlDialect` 接口隔离不同数据库差异: - `MySqlDialect` - MySQL方言实现 - `PostgreSqlDialect` - PostgreSQL方言实现 - 可扩展支持更多数据库 ### 插件机制 支持四种类型的插件扩展: - `FunctionPlugin` - 自定义函数 - `ExpressionPlugin` - 表达式处理 - `PermissionStrategyPlugin` - 权限策略 - `ResultTransformerPlugin` - 结果转换 ### 数据模型 - `ParsedRequest` - 解析后的请求结构 - `RequestContext` - 请求上下文信息 - `QueryPlan` - 查询计划中间表示 - `SqlStatement` - SQL语句模型 - `ValidationResult` - 验证结果 ## 使用示例 ### 基本查询 ```json { "User": { "id": 1, "@column": "id,name,email" } } ``` ### 复杂查询 ```json { "User": { "id>": 0, "@column": "id,name,email", "@order": "id-", "Comment[]": { "userId@": "/User/id", "@column": "id,content,date" } } } ``` ## 优势特性 1. **明确分层** - 每层职责单一,易于维护和测试 2. **方言隔离** - 支持多种数据库,易于扩展 3. **插件机制** - 高度可扩展,支持自定义功能 4. **类型安全** - 强类型设计,减少运行时错误 5. **性能优化** - 查询计划优化,支持缓存 6. **审计完整** - 完整的日志和审计功能 ## 迁移指南 从原版APIJSON迁移到重构版本: 1. 替换核心引擎实例化 2. 配置数据库方言 3. 注册自定义插件 4. 测试验证功能 ## 性能优化 - 查询计划缓存 - SQL语句缓存 - 结果集缓存 - 连接池管理 - 批量操作支持 ## 安全特性 - SQL注入防护 - 敏感字段过滤 - 审计日志记录 - 访问频率限制