跳到主要内容

模块与执行引擎

工程总览​

apigo-cloud/
├── apigo-boot/ # 业务模块父工程
│ ├── apigo-admin/ # 管理配置模块 (端口 9377)
│ ├── apigo-api/ # 接口执行模块 (开放接口入口)
│ ├── apigo-core/ # 执行引擎核心
│ ├── apigo-db-spi/ # 数据源驱动 SPI
│ └── apigo-plugin/ # 数据源扩展插件
├── apigo-gateway/ # 网关服务 (端口 9600)
├── apigo-common/ # 公共组件
│ ├── apigo-common-auth/ # 认证上下文与权限模型
│ ├── apigo-common-log/ # 日志组件
│ ├── apigo-common-redis/ # Redis 缓存组件
│ └── apigo-common-base/ # 基础工具与常量
├── apigo-web/ # 前端门户 (端口 7001)
└── db/ # 数据库脚本

模块职责​

模块核心职责关键类
前端门户 apigo-web产品可视化与交互编排API Hub、工作台、服务管理、系统管理、AI 问数
配置中心 apigo-admin管理接口定义与规则、配置下发LoadingData、ApiRuntimeCacheService、RedisRouteService
执行服务 apigo-api开放接口 HTTP 适配与鉴权ApiServiceController、AuthInterceptor、McpSkillController
执行核心 apigo-core通用执行引擎与驱动封装ApiRuntimeService、ApiModeExecutorRouter、SqlModeExecutor、ProxyModeExecutor、LayoutModeExecutor
数据源 SPI apigo-db-spi数据源驱动接口定义DataSourceDriver、DataSourceManager
数据源插件 apigo-plugin数据源驱动实现JdbcDataSourceDriver、DefaultDataSourceDriver
网关 apigo-gateway流量接入与运行治理ApiRouteDefinitionRepository、AuthFilter、CacheFilter、IPFilter、LogFilter、MockFilter、WafFilter

执行引擎:策略模式 + 路由器​

// 执行器接口
public interface ApiModeExecutor {
boolean supports(ApiDetails apiDetails); // 判断是否支持该接口类型
ApiRuntimeResult execute(ApiRuntimeContext context); // 执行接口
}

三种内置执行器:

执行器处理类型说明
SqlModeExecutorSQL / TABLE / SCRIPT执行 SQL 脚本,支持事务、分页、参数绑定
ProxyModeExecutorPROXYHTTP 代理转发,支持原始字节流透传
LayoutModeExecutorLAYOUT图式编排(DAG),多节点串行/并行/条件执行

统一运行时链路:

关键设计:

  • ThreadLocal 上下文切换 — 编排内嵌 API 节点递归调用时临时切换执行上下文,执行完毕恢复
  • 深度限制 — 防止编排循环调用导致栈溢出
  • rawBody 透传 — 代理二进制响应跳过 JSON 序列化直写输出流

新增接口类型只需实现 ApiModeExecutor 并注册为 Spring Bean,路由器自动发现。

网关过滤器链​

顺序过滤器职责
-100LogFilter请求日志、traceId 生成、响应体捕获
-100MockFilterMock 隔离 /mock/{envCode}/**
-40WafFilterSQL 注入 / XSS / 路径遍历检测
-20AuthFilter开放接口认证(策略模式)
-19JwtCredentialStripFilterJWT 认证成功后剥离凭证与可伪造身份头,防 token passthrough
-10IPFilterIP 黑白名单
-1CacheFilter缓存命中直接返回
1ErrorFilter转发异常兜底

认证策略通过 Map<String, AuthService> 自动注入收集:

策略Bean 名说明
AppKeyAuthServiceapp_keyHeader X-AppKey 与接口授权应用列表比对
AppSecretAuthServiceapp_secretHMAC 签名认证(SM3 / HmacSHA256),Redis SETNX 防重放
OAuth2AuthServiceoauth2OAuth2 客户端凭证,校验 Bearer token 并从 claims 解析应用
JwtBearerAuthServicejwt企业 IdP JWT:JWKS 验签 + claims 校验,按 (jwtIdp, subject) 反查应用,使用标准 401/403/503

动态路由​

ApiRouteDefinitionRepository 基于 Spring Cloud Gateway 的 Redis 路由仓库扩展:

  1. 启动时从 Redis 全量加载路由定义
  2. 同步加载 Sentinel 限流(GatewayFlowRule)与熔断(DegradeRule)规则
  3. Redis Pub/Sub 监听配置变更,增量刷新路由与规则
  4. 定期对账任务确保 Redis 与数据库一致

公共组件​

组件用途
apigo-common-authApiThreadLocal、ApiDetails、AppDetails 认证上下文
apigo-common-logBLog、BLogAspect 日志模型与切面
apigo-common-redisRedisService、RedisConfig 缓存工具
apigo-common-base基础工具与常量