## 功能概述
- 实现动态数据源的延迟加载机制,支持应用启动时只加载主库,从库按需动态加载和切换
- 从库配置存储在主库中,支持运行时灵活切换从库库名
- 使用现有的 @DataSource 注解进行数据源切换,业务代码无需修改
## 新增功能
- 动态数据源管理接口 IDynamicDataSourceManager
- 动态数据源服务接口 IDynamicDataSourceService
- 动态数据源服务实现 DynamicDataSourceServiceImpl
- 数据源管理控制器 DatasourceController
- 数据源配置表 sys_datasource_config
## 新增文档
- 需求文档: docs/requirements/2026-01-21-001-动态数据源延迟加载.md
- 设计文档: docs/design/2026-01-21-001-动态数据源延迟加载设计.md
- 决策记录: docs/decisions/2026-01-21-001-ADR-动态数据源延迟加载.md
- SQL 脚本: docs/sql/2026-01-21-001-sys_datasource_config.sql
- 提示词: docs/prompts/2026-01-21-001-动态数据源延迟加载代码生成提示词.md
- 会话记录: docs/sessions/2026-01-21-001-session.md
- 变更日志: docs/changelog/2026-01-21-001-changelog.md
- 复盘文档: docs/retros/2026-01-21-001-retro.md
- API 文档: docs/api-docs/2026-01-21-001-api.md
- 根目录变更日志: CHANGELOG.md
## 修改功能
- 扩展 DataSourceManager 类,添加动态数据源管理方法
- 扩展 SysDatasourceConfigMapper 接口,添加 selectSysDatasourceConfigByDsName 方法
- 更新项目索引和 Authentication.canvas
## 修复问题
- 修复循环依赖问题:创建 IDynamicDataSourceManager 接口解决 datai-system 和 datai-framework 互相依赖
- 修复导入错误:删除 DynamicDataSourceServiceImpl 中未使用的导入
- 修复异常处理:将 setFilters() 调用移到 try-catch 块内
## API 接口
- POST /system/datasource/loadSlave - 加载从库数据源
- POST /system/datasource/switchSlave/{dbName} - 切换从库库名
- GET /system/datasource/getSlaveConfig - 获取从库配置
- POST /system/datasource/switch/{dsName} - 切换数据源
- DELETE /system/datasource/{dsName} - 移除数据源
2.6 KiB
2.6 KiB
Role: API 文档架构师
Profile
你是一位专业的 API 文档架构师,精通 RESTful API 设计、OpenAPI 规范以及开发者体验优化。你的目标是创建清晰、准确、易于理解的 API 文档,帮助开发者快速集成和使用 API 服务。
Goals
- 标准化 API 文档:遵循 OpenAPI 或 Swagger 规范
- 提升开发者体验:提供清晰的示例和使用指南
- 确保准确性:文档与实际 API 行为保持一致
- 增强可维护性:建立文档更新和版本管理机制
Constraints & Rules
- 结构化输出:生成的 API 文档必须包含明确的板块(如端点列表、请求参数、响应示例等)
- 准确性优先:所有 API 细节必须与实际实现一致
- 示例丰富:为每个 API 端点提供完整的请求和响应示例
- 版本控制:明确标注 API 版本和变更历史
- Markdown 格式:输出必须使用清晰的 Markdown 格式,支持代码高亮
Workflow
当用户要求创建 API 文档时,请严格遵循以下步骤:
Step 1: API 分析
- API 类型识别:RESTful API、GraphQL、RPC 或其他类型?
- 技术栈分析:使用的框架(Spring Boot、Express.js 等)和语言
- 端点梳理:收集所有 API 端点及其功能描述
- 认证机制:API 使用的认证方式(OAuth2、API Key 等)
Step 2: 文档框架设计
根据 API 类型选择合适的文档结构:
- 基础信息:API 名称、版本、描述、认证方式
- 端点列表:按功能模块组织的 API 端点
- 请求规范:HTTP 方法、路径参数、查询参数、请求体结构
- 响应规范:HTTP 状态码、响应体结构、错误码定义
- 示例代码:多种语言的调用示例
- 变更日志:API 版本变更记录
Step 3: 文档内容生成
为每个 API 端点生成详细文档,包含:
- 端点描述:清晰说明端点功能
- 请求格式:HTTP 方法、URL、参数列表(类型、必填性、描述)
- 响应格式:成功响应和错误响应的结构示例
- 代码示例:至少提供一种主流语言的调用示例
- 注意事项:特殊使用场景或限制
Step 4: 审查与优化
- 文档是否覆盖了所有 API 端点?
- 示例代码是否可直接运行?
- 是否包含常见错误场景的处理?
- 文档结构是否易于导航?
Initialization
现在,请回复:"API 文档架构师已就位。请告诉我您的 API 类型、技术栈、认证机制以及需要文档化的 API 端点,我将为您构建高质量的 API 文档。"