1.8 KiB
		
	
	
	
	
	
	
	
			
		
		
	
	
			1.8 KiB
		
	
	
	
	
	
	
	
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: 所有控制器及其辅助函数。