44 lines
2.9 KiB
Markdown
44 lines
2.9 KiB
Markdown
# API、基础模块与业务示例验收
|
||
|
||
本轮将 API 项目生成与数据库、存储、日志选项组合,新增可运行的用户管理示例。
|
||
源码及 CLI 目标版本为 v0.7.0-preview。
|
||
|
||
## 本地结果
|
||
|
||
- 框架 `GO_OMNI_SCAFFOLD_INTEGRATION=1 go test -race -p=2 -count=1 -timeout=300s ./...`:39 个有测试包通过。
|
||
- 包含 10 种 API 组合(none/mysql × none/local/s3/r2/oss)及既有 10 种 CRUD 模块组合;生成项目实际编译并运行测试。
|
||
- `go vet ./...`、`go build ./...`、`git diff --check` 通过。
|
||
- API 基础回归:starter 与契约项目,在 nethttp/native 共 54 项检查通过。
|
||
- 独立用户示例:nethttp/native 共 30 项业务、存储和生命周期检查通过。
|
||
- MySQL 真实事务:提交、错误回滚、panic 回滚、context 取消回滚;业务增/改/删在审计写入失败时整体回滚。
|
||
- 通过 CLI 显式应用数据库迁移;数据库停机 readiness=503,恢复后重新就绪;进程重启数据仍在。
|
||
- 本地初轮 28 份开发者拥有的文件在重生成后保持原字节,包括业务实现、配置、迁移和测试。
|
||
- 存储初始化失败关闭此前打开的数据库连接,Close 可重复调用,关闭后不能重开存储。
|
||
|
||
数据库容器只绑定 localhost,限制 1 CPU / 768 MiB,使用随机临时密钥,退出删除容器及卷。
|
||
所有服务器进程都是本机临时子进程;未使用业务服务器。OSS/R2 仍不包含云账号实测。
|
||
|
||
## 证据
|
||
|
||
- [完整框架测试](apiWorkflowTests.txt)
|
||
- [本地业务报告](apiWorkflowLocal.json)
|
||
- [API 回归](apiGenerationLocal.json)
|
||
- [模块脚手架回归](scaffoldModulesLocal.json)
|
||
|
||
## 远程版本验收
|
||
|
||
已发布 `v0.7.0-preview`,标签指向 `0ce3efb6fca77951e7ae3046128f82afc28446d1`。
|
||
|
||
执行 `python3 scripts/verifyAPIWorkflow.py --version v0.7.0-preview --report performance/apiWorkflowRemote.json` 通过:
|
||
|
||
- 从空 module cache 下载并安装远程 CLI,未使用源码构建的 CLI。
|
||
- 在全新目录生成 MySQL + local 项目;go.mod 固定 `v0.7.0-preview`,无本地 replace,实际编译通过。
|
||
- 独立用户示例的框架依赖从远程下载,module checksum 为 `h1:aHdKHoegW2C7sjkq5D8ls2sxDJ+fWbiZ2UnWDers1yg=`。
|
||
- nethttp/native 共 30 项业务、存储、日志与生命周期检查通过;真实数据库迁移、事务和启动清理测试通过。
|
||
- 最终示例补充了数据库错误日志边界:原始 driver 错误可能含业务输入,因此返回到 HTTP 访问日志的 500 不携带原文;用单元测试和远程全流程验证。
|
||
- 框架发布标签保持不变;示例是独立 module,后续示例和验收报告维护在 main。报告记录了实际测试示例与生成器源码哈希。
|
||
|
||
[远程验收报告](apiWorkflowRemote.json) 包含准确的文件保护数量、sourceHashes 和各项检查结果。
|
||
|
||
所有验收已结束,临时服务、数据库容器和测试目录由脚本清理。
|