基于项目现状分析,制定后续功能开发计划
| 模块 | 完成度 | 说明 |
|---|---|---|
| intelli-common | ✅ 98% | 公共组件、工具类、用户上下文、Dubbo接口、枚举、签名工具 |
| intelli-auth-iam-service | ✅ 90% | 用户认证、角色权限、租户管理 |
| intelli-gateway-service | ✅ 98% | JWT鉴权、限流、动态路由、访问日志、开放API转发、Redis Pub/Sub路由刷新、调用日志采集上报 |
| intelli-api-platform-service | ✅ 90% | API生命周期、开放API认证、订阅校验、路由配置、公告管理、系统配置 |
| intelli-app-center-service | ✅ 90% | 应用管理、AppKey生命周期、API订阅、Dubbo服务 |
| intelli-governance-service | ✅ 85% | 调用统计、统计查询、调用日志消费、告警管理 |
| intelli-sdk | ✅ 100% | Java SDK(签名认证、HTTP客户端、异常处理) |
| intellihub-frontend | ✅ 92% | 控制台页面、API管理、应用管理、统计仪表盘、开发文档、API市场、系统设置、公告管理 |
| 模块 | 完成度 | 说明 |
|---|---|---|
| intelli-governance-service(告警) | ❌ 10% | SLA管理、告警规则、告警通知(表结构已预留) |
| intelli-aigc-service | ❌ 5% | 智能分析、文档生成 |
| intelli-event-service | ❌ 5% | 事件驱动、消息中心 |
| intelli-search-service | ❌ 5% | 聚合搜索 |
| intelli-log-audit-service | ❌ 5% | 操作审计、日志管理 |
- 用户登录/登出、Token签发
- 租户管理(创建、查询、停用)
- 用户管理(CRUD、角色分配)
- 角色权限管理
- API生命周期(创建、发布、下线、废弃、删除)
- API分组管理
- API参数配置(Query/Header/Path/Body)
- API后端配置(HTTP/Dubbo/Mock)
- Gateway JWT鉴权过滤器
- Gateway 限流过滤器
- Gateway 租户上下文透传
- 开放API动态路由(OpenApiRouteFilter)
- 路由配置热更新(Redis Pub/Sub)
- HTTP后端转发(LoadBalancer + WebClient)
- Dubbo泛化调用支持
- 用户上下文ThreadLocal方案
- 应用中心完整功能(CRUD、AppKey管理)
- AppKey/Secret生成(安全随机)
- API订阅关系管理
- 开放API认证过滤器(HMAC-SHA256签名)
- 防重放攻击(Nonce + Timestamp)
- 订阅关系校验(路径匹配)
- Dubbo服务接口(AppCenterDubboService)
- 状态枚举(AppStatus、AppType、SubscriptionStatus)
- Gateway调用日志采集(AccessLogFilter + CallLogReportService)
- 调用统计服务(StatsService + CallLogService)
- 统计查询接口(StatsController)
- 调用日志查询接口(CallLogController)
- 登录页面
- 控制台布局
- API列表页(搜索、筛选、分页)
- API创建/编辑页(完整表单)
- API详情页
- API分组管理页
- 用户管理页
- Token管理页
- 应用列表页(创建、编辑、筛选)
- 应用详情弹窗
- 密钥管理弹窗
- API授权弹窗
- 统计仪表盘页面(StatsPage.vue)
- 调用日志列表页(CallLogsPage.vue)
目标:实现应用的创建、AppKey/Secret管理,支持API调用方接入
| 任务 | 优先级 | 状态 |
|---|---|---|
| 应用实体设计(Application) | P0 | ✅ 已完成 |
| AppKey/Secret生成与管理 | P0 | ✅ 已完成 |
| 应用CRUD接口 | P0 | ✅ 已完成 |
| 应用与API绑定关系 | P0 | ✅ 已完成 |
| 应用配额管理 | P1 | ✅ 已完成 |
| AppKey状态管理(启用/禁用/重置) | P1 | ✅ 已完成 |
| Dubbo服务接口 | P0 | ✅ 已完成 |
数据模型:
-- 应用表
CREATE TABLE app_info (
id VARCHAR(32) PRIMARY KEY,
tenant_id VARCHAR(32) NOT NULL,
name VARCHAR(100) NOT NULL,
code VARCHAR(50) NOT NULL,
description VARCHAR(500),
app_key VARCHAR(64) NOT NULL UNIQUE,
app_secret VARCHAR(128) NOT NULL,
status VARCHAR(20) DEFAULT 'active',
quota_limit INT DEFAULT 10000,
created_by VARCHAR(32),
created_at DATETIME,
updated_at DATETIME
);
-- 应用API订阅关系
CREATE TABLE app_api_subscription (
id VARCHAR(32) PRIMARY KEY,
app_id VARCHAR(32) NOT NULL,
api_id VARCHAR(32) NOT NULL,
status VARCHAR(20) DEFAULT 'active',
created_at DATETIME
);| 任务 | 优先级 | 状态 |
|---|---|---|
| 应用创建弹窗 | P0 | ✅ 已完成 |
| 应用详情页 | P0 | ✅ 已完成 |
| AppKey显示与复制 | P0 | ✅ 已完成 |
| API订阅管理 | P1 | ✅ 已完成 |
| 应用配额展示 | P1 | ✅ 已完成 |
| 应用筛选功能 | P1 | ✅ 已完成 |
目标:完善开放API鉴权能力,支持AppKey签名认证
架构调整:认证逻辑从Gateway迁移到API Platform服务,Gateway仅负责路由转发
| 任务 | 优先级 | 状态 |
|---|---|---|
| 开放API认证过滤器 | P0 | ✅ 已完成 |
| 签名算法实现(HMAC-SHA256) | P0 | ✅ 已完成 |
| 防重放攻击(Nonce + Timestamp) | P0 | ✅ 已完成 |
| AppKey缓存(Redis) | P1 | ✅ 已完成 |
| 应用订阅关系校验 | P1 | ✅ 已完成 |
| Dubbo服务调用 | P0 | ✅ 已完成 |
签名规则:
签名字符串 = HTTP_METHOD + "\n" + REQUEST_PATH + "\n" + TIMESTAMP + "\n" + NONCE
签名 = Base64(HMAC-SHA256(签名字符串, AppSecret))
请求头:
X-App-Key: {appKey}
X-Timestamp: {timestamp}
X-Nonce: {nonce}
X-Signature: {signature}
| 任务 | 优先级 | 状态 |
|---|---|---|
| 禁用Gateway AppKey认证 | P0 | ✅ 已完成 |
| 添加开放API路由规则 | P0 | ✅ 已完成 |
| 保留JWT认证和限流 | P0 | ✅ 已完成 |
| 任务 | 优先级 | 状态 |
|---|---|---|
| API路由配置加载 | P0 | ✅ 已完成 |
| 路由规则缓存(本地+Redis) | P0 | ✅ 已完成 |
| 路由配置热更新(Redis Pub/Sub) | P1 | ✅ 已完成 |
| HTTP后端转发(负载均衡) | P0 | ✅ 已完成 |
| Dubbo泛化调用 | P1 | ✅ 已完成 |
| 灰度路由支持 | P2 | ❌ 待开发 |
目标:实现API调用统计、监控告警
| 任务 | 优先级 | 状态 |
|---|---|---|
| 数据库表结构设计 | P0 | ✅ 已完成 |
| 调用日志采集(Gateway异步上报) | P0 | ✅ 已完成 |
| 调用日志消费服务 | P0 | ✅ 已完成 |
| 实时统计(Redis) | P0 | ✅ 已完成 |
| 统计数据持久化(小时/天维度) | P0 | ✅ 已完成 |
| 多维度统计接口 | P0 | ✅ 已完成 |
| 趋势分析接口 | P1 | ✅ 已完成 |
| Top API统计 | P1 | ✅ 已完成 |
数据模型:
-- 调用统计汇总表(按小时)
CREATE TABLE api_call_stats_hourly (
id BIGINT AUTO_INCREMENT PRIMARY KEY,
tenant_id VARCHAR(32) NOT NULL,
api_id VARCHAR(32) NOT NULL,
app_id VARCHAR(32),
stat_hour DATETIME NOT NULL,
total_count BIGINT DEFAULT 0,
success_count BIGINT DEFAULT 0,
fail_count BIGINT DEFAULT 0,
avg_latency INT DEFAULT 0,
max_latency INT DEFAULT 0,
INDEX idx_stat_hour (stat_hour),
INDEX idx_api_id (api_id)
);| 任务 | 优先级 | 预估工时 | 状态 |
|---|---|---|---|
| 告警规则配置 | P1 | 3h | ✅ 已完成 |
| 告警触发检测 | P1 | 3h | ✅ 已完成 |
| 告警通知(邮件/钉钉/Kafka) | P1 | 3h | ✅ 已完成(框架已搭建,待集成具体通知服务) |
| 告警历史查询 | P2 | 2h | ✅ 已完成 |
| 任务 | 优先级 | 状态 |
|---|---|---|
| 调用统计仪表盘 | P0 | ✅ 已完成(StatsPage.vue) |
| API调用趋势图 | P0 | ✅ 已完成(ECharts集成) |
| 调用日志列表 | P1 | ✅ 已完成(CallLogsPage.vue) |
| 告警配置页面 | P1 | ❌ 待开发 |
| 告警历史页面 | P2 | ❌ 待开发 |
目标:集成AI能力,提供智能分析和文档生成
| 任务 | 优先级 | 预估工时 |
|---|---|---|
| AI服务接入封装 | P0 | 3h |
| API异常分析 | P1 | 4h |
| 性能优化建议 | P1 | 4h |
| Token消耗统计 | P1 | 2h |
| 任务 | 优先级 | 预估工时 |
|---|---|---|
| API文档自动生成 | P1 | 4h |
| 使用说明生成 | P2 | 3h |
| 示例代码生成 | P2 | 3h |
| 任务 | 优先级 | 预估工时 |
|---|---|---|
| 事件模型定义 | P2 | 2h |
| Kafka集成 | P2 | 3h |
| 事件发布/订阅 | P2 | 3h |
| 任务 | 优先级 | 预估工时 |
|---|---|---|
| 审计日志采集 | P2 | 2h |
| 审计日志查询 | P2 | 2h |
| 审计报表 | P3 | 3h |
| 任务 | 优先级 | 预估工时 |
|---|---|---|
| Elasticsearch集成 | P3 | 3h |
| API搜索功能 | P3 | 3h |
| 全文检索 | P3 | 3h |
- 应用中心后端 - 应用CRUD、AppKey管理 ✅
- 应用中心前端 - 应用创建、详情页 ✅
- Gateway AppKey认证 - 签名验证过滤器 ✅
- 开放API动态路由 - HTTP/Dubbo转发 ✅
- 路由热更新 - Redis Pub/Sub通知 ✅
- 调用统计采集 - Gateway上报调用数据 ✅
- 统计仪表盘 - 前端可视化 ✅
- 调用日志查询 - 分页查询、筛选 ✅
- 告警管理 - 规则配置、通知
- AIGC集成 - 智能分析、文档生成
- 事件驱动 - Kafka集成
- 审计日志 - 操作记录
- 搜索能力 - ES集成
| 项目 | 说明 | 优先级 |
|---|---|---|
| 包路径统一 | common模块包路径调整为com.intellihub | ✅ 已完成 |
| 异常处理规范 | 统一业务异常处理 | P1 |
| 接口文档 | Swagger/OpenAPI集成 | P1 |
| 单元测试 | 核心服务单元测试 | P2 |
| 代码规范 | Checkstyle/PMD集成 | P2 |
| 里程碑 | 目标 | 预计时间 |
|---|---|---|
| M1 | 应用中心上线,支持AppKey认证 | ✅ 已完成 |
| M2 | 调用统计上线,基础监控能力 | ✅ 已完成 |
| M3 | 告警管理上线,主动运维能力 | ✅ 已完成 |
| M3.5 | 平台增强:SDK、系统设置、公告管理 | ✅ 已完成 |
| M4 | AIGC集成,智能化能力 | 待开始 |
| M5 | 全功能上线,生产就绪 | 待开始 |
建议从「AIGC 智能增强」开始,因为:
- 核心功能已完成:API 管理、调用统计、告警管理、SDK 均已上线
- 差异化能力:AI 驱动的智能分析是平台亮点
- 用户价值:智能文档生成、异常分析能显著提升用户体验
完成网关核心流程测试(验证码接口)✅开发调用统计采集(intelli-governance-service)✅前端统计仪表盘页面✅告警规则配置服务开发✅告警触发检测定时任务✅前端告警配置页面✅Java SDK 模块开发✅系统设置与公告管理✅- AIGC 服务接入封装
- API 文档智能生成
- 告警通知实际集成(邮件/钉钉/Webhook)
完成内容:
- ✅ 修复Gateway路由配置(添加
/open/**路径匹配) - ✅ 修复Bean名称冲突(RouteRefreshListener → ApiRouteChangeListener)
- ✅ 修复后端地址拼接问题(去除重复协议前缀)
- ✅ 实现HTTP后端转发(LoadBalancerClient + WebClient)
- ✅ 完善API下发指南文档(添加Dubbo配置示例)
测试验证:
# 验证码接口测试
curl http://localhost:8080/open/auth/captcha相关文件:
OpenApiRouteFilter.java- 开放API动态路由过滤器ApiRouteChangeListener.java- 路由变更监听器RedisMessageConfig.java- Redis Pub/Sub配置API下发指南.md- 操作文档
完成内容:
- ✅ 数据库表结构(api_call_log、api_call_stats_hourly、api_call_stats_daily、alert_rule、alert_record)
- ✅ Gateway调用日志采集(AccessLogFilter + CallLogReportService)
- ✅ 调用日志消费服务(CallLogService)
- ✅ 统计查询服务(StatsService)
- ✅ 统计接口(StatsController)
- ✅ 调用日志接口(CallLogController)
- ✅ 前端统计仪表盘(StatsPage.vue)
- ✅ 前端调用日志列表(CallLogsPage.vue)
相关文件:
intelli-governance-service/src/main/resources/sql/governance_tables.sqlintelli-gateway-service/.../filter/AccessLogFilter.javaintelli-gateway-service/.../service/CallLogReportService.javaintelli-governance-service/.../service/StatsService.javaintelli-governance-service/.../service/CallLogService.javaintellihub-frontend/src/views/console/stats/StatsPage.vueintellihub-frontend/src/views/console/stats/CallLogsPage.vue
完成内容:
- ✅ 告警规则实体(AlertRule)和DTO
- ✅ 告警记录实体(AlertRecord)和DTO
- ✅ 告警规则CRUD服务(AlertRuleService)
- ✅ 告警记录服务(AlertRecordService)
- ✅ 告警规则API(AlertRuleController)
- ✅ 告警记录API(AlertRecordController)
- ✅ 告警检测定时任务(AlertDetectionJob)
- ✅ 告警通知定时任务(AlertNotifyJob)
- ✅ 告警通知服务框架(AlertNotifyService)
- ✅ 启用定时任务(@EnableScheduling)
- ✅ StatsService新增getRealtimeStats方法
支持的告警规则类型:
error_rate- 错误率告警latency- 平均延迟告警qps- QPS告警
支持的通知渠道:
email- 邮件通知(待集成)webhook- Webhook通知(待集成)dingtalk- 钉钉机器人(待集成)kafka- Kafka消息(待集成)
相关文件:
entity/AlertRule.javaentity/AlertRecord.javadto/AlertRuleDTO.javadto/AlertRecordDTO.javamapper/AlertRuleMapper.javamapper/AlertRecordMapper.javaservice/AlertRuleService.javaservice/AlertRecordService.javaservice/AlertNotifyService.javacontroller/AlertRuleController.javacontroller/AlertRecordController.javajob/AlertDetectionJob.javajob/AlertNotifyJob.java
完成内容:
- ✅ 监控中心 QPS 显示修复(从正确的 Redis Key 读取)
- ✅ 监控中心响应状态分布改为 ECharts 饼图
- ✅ 监控中心 API 调用趋势图表实现
- ✅ 监控中心时间范围选择功能
- ✅ 监控中心 API 选择下拉动态加载
- ✅ API 市场改造为从后端获取真实数据
- ✅ 创建跨租户公开 API 接口(
/v1/public/apis/list) - ✅ Gateway 添加公开 API 路由规则
- ✅ 实体关系设计文档(
架构设计-实体关系说明.md)
相关文件:
intelli-governance-service/.../service/StatsService.java- QPS 计算修复intellihub-frontend/src/views/monitor/MonitorPage.vue- 监控中心增强intelli-api-platform-service/.../controller/PublicApiController.java- 公开 API 控制器intelli-gateway-service/.../application.yml- 路由规则更新docs/架构设计-实体关系说明.md- 实体关系文档
完成内容:
- ✅ 创建
StatsCallCountSyncJob定时任务 - ✅ 添加 Dubbo 接口:
ApiPlatformDubboService.batchUpdateApiCallCounts() - ✅ 添加 Dubbo 接口:
AppCenterDubboService.batchUpdateAppQuotaUsed() - ✅ 创建 DTO:
ApiCallCountDTO、AppCallCountDTO - ✅ 创建 Mapper XML:
ApiCallLogMapper.xml - ✅ governance-service 添加 Dubbo 依赖和配置
相关文件:
intelli-governance-service/.../job/StatsCallCountSyncJob.javacommon-dubbo-api/.../ApiCallCountDTO.javacommon-dubbo-api/.../AppCallCountDTO.javaintelli-api-platform-service/.../dubbo/ApiPlatformDubboServiceImpl.javaintelli-app-center-service/.../dubbo/AppCenterDubboServiceImpl.javaintelli-governance-service/src/main/resources/mapper/ApiCallLogMapper.xml
| 功能 | 说明 | 状态 |
|---|---|---|
| 告警规则前端页面 | 告警规则配置界面 | ✅ 已完成 |
| 告警历史前端页面 | 告警记录查看界面 | ✅ 已完成 |
| 告警通知集成 | 邮件/钉钉/Webhook 实际对接 | ❌ 待开发 |
| 功能 | 说明 | 状态 |
|---|---|---|
| 内部 API 调用统计 | 当前只统计开放API,内部API缺少apiId/appId | ❌ 待开发 |
| 灰度路由支持 | 按百分比或规则分流 | ❌ 待开发 |
| API 版本管理增强 | 版本对比、回滚 | ❌ 待开发 |
| 功能 | 说明 | 状态 |
|---|---|---|
| AIGC 智能分析 | AI 驱动的异常分析 | ❌ 待开发 |
| 操作审计日志 | 用户操作记录 | ❌ 待开发 |
| Elasticsearch 集成 | 全文搜索 | ❌ 待开发 |
问题描述:
- 内部管理 API(如
/api/v1/apis/list)调用时,apiId和appId为空 - 原因:这些请求不经过
OpenApiRouteMatchFilter,前端也不带X-App-Id头
影响范围:
api_info.todayCalls和totalCalls只统计开放 APIapp_info.quotaUsed只统计开放 API 调用
决策:
- 方案1(已选):只统计开放 API,内部 API 不计入
- 方案2(备选):扩展内部 API 统计,需要修改网关逻辑
完成内容:
- ✅ 合并调用统计和监控中心为统一入口
- ✅ 删除控制台数据看板和监控中心冗余菜单
- ✅ 控制台首页改为从后端加载真实数据
- ✅ 动态内容加载(快速开始、认证鉴权、请求规范、响应格式)
- ✅ SDK 文档(Java/Python/Node.js/Go 示例)
- ✅ 更新日志、常见问题模块
- ✅ 代码复制功能
- ✅ Hero 区域重新设计(白色背景 + 天蓝色色块)
- ✅ 分类标签筛选
- ✅ 排序功能(最新/热门/评分)
- ✅ API 卡片布局优化
- ✅ 基础设置(平台信息、联系方式)
- ✅ 安全设置(登录安全、会话管理)
- ✅ API 设置(网关配置、限流配置)
- ✅ 通知设置(邮件、告警、Webhook)
- ✅ 后端:公告实体、DTO、Mapper、Service、Controller
- ✅ 后端:系统配置实体、Service、Controller
- ✅ 前端:公告管理页面(CRUD、发布/下线)
- ✅ 数据库迁移脚本(sys_announcement、sys_config 表)
- ✅ 网关路由配置(添加 /api/platform/** 路由)
- ✅ SDK 模块结构创建(intelli-sdk)
- ✅ IntelliHubClient 主客户端(GET/POST/PUT/DELETE)
- ✅ IntelliHubConfig 配置类(Builder 模式)
- ✅ SignatureUtils 签名工具(HMAC-SHA256)
- ✅ ApiResponse 响应模型
- ✅ IntelliHubException 异常类
- ✅ SDK 使用文档(README.md)
- ✅ 集成到父项目 pom.xml
相关文件:
intellihub-frontend/src/views/docs/DocsPage.vue- 开发文档页面intellihub-frontend/src/views/api-market/ApiMarketPage.vue- API 市场页面intellihub-frontend/src/views/console/settings/SettingsPage.vue- 系统设置页面intellihub-frontend/src/views/console/settings/AnnouncementsPage.vue- 公告管理页面intellihub-frontend/src/views/console/DashboardPage.vue- 控制台首页intelli-api-platform-service/.../controller/AnnouncementController.java- 公告 APIintelli-api-platform-service/.../controller/SysConfigController.java- 配置 APIintelli-api-platform-service/.../entity/Announcement.java- 公告实体intelli-api-platform-service/.../entity/SysConfig.java- 配置实体intelli-gateway-service/src/main/resources/application.yml- 网关路由更新intelli-sdk/- Java SDK 完整模块
文档版本:v1.5 更新时间:2024-12-26