26 lines
1.8 KiB
Markdown
26 lines
1.8 KiB
Markdown
## Why
|
|
|
|
本项目当前使用 Gin 作为核心 Web 框架。Gin 的路由系统存在一些限制,例如无法优雅地支持类似 `/:id/action` 和 `/:other_id/other-action` 这种在同一层级使用不同动态参数的路由模式。为了解决此问题并利用更现代、灵活的路由和中间件系统,我们计划将框架迁移到 Echo (v4)。本次变更仅进行框架替换,暂不修改现有路由结构。
|
|
|
|
## What Changes
|
|
|
|
- **核心框架替换**: 将 `github.com/gin-gonic/gin` 的所有引用替换为 `github.com/labstack/echo/v4`。
|
|
- **API 路由重写**: 更新 `internal/app/api/router.go` 以使用 Echo 的路由注册方式。
|
|
- **上下文对象适配**: 在所有 Controller 和 Middleware 中,将 `*gin.Context` 替换为 `echo.Context`,并调整相关方法调用。
|
|
- **中间件迁移**: 将现有的 Gin 中间件 (`AuthMiddleware`, `AuditLogMiddleware`) 适配为 Echo 的中间件格式。
|
|
- **Swagger 文档适配**: 将 `gin-swagger` 替换为 Echo 兼容的 `echo-swagger`,确保 API 文档能够正常生成和访问。
|
|
- **Pprof 路由适配**: 确保性能分析工具 pprof 的路由在 Echo 框架下正常工作。
|
|
|
|
**BREAKING**: 这是一项纯粹的技术栈重构,**不应该**对外部 API 消费者产生任何破坏性影响。所有 API 端点、请求/响应格式将保持完全兼容。
|
|
|
|
## Impact
|
|
|
|
- **Affected specs**: 无。此变更是技术实现层面的重构,不改变任何已定义的功能规约。
|
|
- **Affected code**:
|
|
- `go.mod` / `go.sum`: 依赖项变更。
|
|
- `config.yml` / `config.example.yml`: 更新 `mode` 配置项的注释。
|
|
- `internal/app/api/api.go`
|
|
- `internal/app/api/router.go`
|
|
- `internal/app/middleware/auth.go`
|
|
- `internal/app/middleware/audit.go`
|
|
- `internal/app/controller/**/*.go`: 所有控制器及其辅助函数。 |