2.5 KiB
2.5 KiB
created, updated, type, status, parent, phase, timeline, tags
| created | updated | type | status | parent | phase | timeline | tags | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2026-03-29 | 2026-04-06 | project | COMPLETED (2026-03-30) | Smart Support | 3 | 第 4-6 周 |
|
Phase 3:OpenAPI 自动发现
Status: COMPLETED (2026-03-30)
目标
实现 Smart Support 的「10x 差异化功能」:用户粘贴 OpenAPI 规范 URL,系统自动生成 @tool 函数和 Agent 配置。
阶段产出
- SSRF 防护模块:私有 IP 拦截、DNS 重绑定防御、重定向链验证
- OpenAPI 获取器:SSRF 安全、JSON/YAML 自动检测、10MB 大小限制
- 结构化 OpenAPI 验证器:3.0.x 和 3.1.x
- 端点解析器:$ref 解析、参数提取、自动生成 operationId
- 启发式 + LLM 端点分类器:GET=read, POST/PUT/PATCH/DELETE=write,LLM 失败回退启发式
- 审核 API(/api/openapi):导入任务、分类审核、批准生成
- @tool 代码生成器:async 函数 + httpx
- Agent YAML 生成器:按分类分组端点
- 导入编排器:fetch -> validate -> parse -> classify 全流程
- 内存任务存储:导入状态追踪
新增文件
| 文件 | 用途 | 行数 |
|---|---|---|
app/openapi/models.py |
冻结数据类:EndpointInfo, ClassificationResult, ImportJob | 68 |
app/openapi/ssrf.py |
SSRF 防护(validate_url, safe_fetch, DNS 解析) | 162 |
app/openapi/fetcher.py |
SSRF 安全规范获取 | 94 |
app/openapi/validator.py |
结构化规范验证 | 52 |
app/openapi/parser.py |
端点提取 + $ref 解析 | 153 |
app/openapi/classifier.py |
启发式 + LLM 分类器 | 164 |
app/openapi/review_api.py |
导入/审核 API 路由 | 180 |
app/openapi/generator.py |
@tool 代码 + YAML 生成 | 157 |
app/openapi/importer.py |
异步导入流水线 | 117 |
测试覆盖
- 新增测试:125 个(118 单元 + 7 集成)
- 总测试:322
- 覆盖率:93.23%
- SSRF 测试最多:42 个
与计划的偏差
- 未构建自定义工具基类(架构文档明确禁止)
- 使用轻量级结构化验证器而非包装外部库
- 内存任务存储而非数据库(可后续迁移 PostgreSQL)
- 前端审核 UI 推迟到 Phase 5
技术债务
- 前端 ReviewPage 推迟(API 就绪)
- 代码生成基于字符串模板
- LLM 分类提示可用真实案例调优
- 审核 API 无速率限制