Files
go-omni/CHANGELOG.md

3.2 KiB
Raw Blame History

Changelog

v0.3.0

  • 新增公共适配器验收套件 transport/transporttest.Run 和远程消费验收脚本 scripts/verifyTransports.py。Gin、nethttp 使用同一套路由与业务处理链测试,并通过完整用户 CRUD 与 race 验证。
  • 统一参数、分组、方法、URL 解码、路由优先级及 404/405 规则;Gin 405 的 Allow 由适配层计算,避免方法树回退状态带入无关方法。
  • 统一路由注册校验;非法路径、重复路由、参数名冲突和 catch-all 冲突在注册时 panic。
  • App.Handle / RouterGroup.Handle 支持在完整业务中间件链内显式注册 HEAD、OPTIONS 与扩展方法。
  • JSON 在提交响应前编码,编码失败可正确返回统一 500;通过 Context 已提交的响应不会因后续错误、panic 或重复响应追加内容,访问日志保留实际提交的状态。
  • 验证 requestId 与业务日志关联、认证授权短路、请求并发隔离、context 值与 deadline 保留,以及真实客户端取消传入 Service。
  • 升级行为调整:Gin 不再自动重定向尾部斜杠;nethttp 不再忽略尾部斜杠,通配参数包含开头的 /,Any 收敛为九种标准方法。HEAD 不自动回退 GET,其他方法需显式注册。404/405 为统一纯文本响应,405 附排序后的 Allow。
  • gin.NewWithEngine 应用 GoOmni 路由策略;原生 Gin 扩展与 Raw 流式响应不属于可移植契约。详见 transport/README.md。

v0.2.0

  • 新增 go-omni new --database mysql,生成数据库配置、MySQL Repository、ServiceContext、schema.sql 和数据库就绪探针;默认仍使用内存存储。
  • 两种存储模式的脚手架均提供完整 CRUD、分页、输入校验与统一响应。新生成项目的 POST /users 从直接返回用户对象改为标准响应封装,用户对象位于 data。
  • MySQL 启动时检查连接和表结构,失败时清理连接池;数据库停机后 readiness 返回 503,恢复后自动重新检查。
  • MySQL Repository 支持 *sql.DB 和 *sql.Tx,可在同一事务中复用业务查询。
  • 修复 MaxIdleConns=0 未生效的问题,数据库健康检查增加超时限制。
  • 新增隔离 MySQL 容器验收脚本,覆盖真实 CRUD、事务提交和错误/panic/取消回滚、持久化、资源清理及数据库停机恢复。

v0.1.1

  • 修复脚手架生成项目固定依赖不存在的 v0.0.0;远程安装的 CLI 默认使用自身版本,支持 --framework-version 指定完整版本号。
  • 显式远程版本禁用自动本地替换;本地替换路径支持空格,并按精确 module path 识别框架目录。
  • 生成项目通过 signal.NotifyContext 接入优雅退出,启动过程中的错误会先执行 defer 清理再报告。
  • App.Run 自动处理 SIGINT / SIGTERM;RunContext 仍由调用方控制,退出超时会关闭活跃连接。
  • 增加请求排空、超时取消、启动失败清理测试,以及远程脚手架和真实进程信号验收脚本。

v0.1.0

  • 首个可试用版本:应用生命周期、HTTP 抽象、Gin 与标准库路由适配器、统一响应与错误。
  • 提供配置、日志、校验、认证接口、数据库基础能力、健康探针和项目脚手架。