调整openspace方案

This commit is contained in:
2025-10-30 17:23:07 +08:00
parent d235130d11
commit 6228534155
2 changed files with 12 additions and 3 deletions

View File

@@ -59,6 +59,11 @@
- `controller_helpers.go` 中的泛型辅助函数将修改为返回 `error`,以适配 Echo 的错误处理链。
- **Rationale**: 这种重构使得审计逻辑更加清晰和内聚,避免了在中间件中进行复杂的响应体捕获。
7. **DTO 注解 (Annotations)**:
- **From**: `json:"field" binding:"required"`
- **To**: `json:"field" validate:"required"`
- **Rationale**: Gin 使用 `binding` 标签进行请求参数绑定和验证。Echo 框架通常结合 `go-playground/validator` 库进行验证,其对应的标签为 `validate`。因此,所有 DTO 结构体中的 `binding` 标签需要替换为 `validate``json` 标签保持不变。
## Risks / Trade-offs
- **Risk**: 迁移工作量大,可能遗漏某些 Gin 特有的功能或上下文用法,导致运行时错误。

View File

@@ -48,7 +48,11 @@
- [x] `internal/app/controller/plan/plan_controller.go`
- [x] `internal/app/controller/user/user_controller.go`
- [ ] **5. 核心 API 层 (`internal/app/api`)**
- [ ] **5. DTO 结构体注解**
- [ ] 检查并修改 `internal/app/dto` 包下所有结构体的注解。将所有 Gin 相关的注解(例如 `binding:"..."`)替换为 Echo
兼容的注解(例如 `validate:"..."`)。`json:"..."` 标签通常保持不变。
- [ ] **6. 核心 API 层 (`internal/app/api`)**
- [ ] **`router.go`**
- [ ] 将所有 `router.GET`, `router.POST` 等 Gin 路由注册方法替换为 Echo 的 `e.GET`, `e.POST` 等方法。
- [ ] 将 Swagger 路由 `router.GET("/swagger/*", ginSwagger.WrapHandler(swaggerFiles.Handler))` 替换为
@@ -61,14 +65,14 @@
- [ ]`gin.New()` 替换为 `echo.New()`
- [ ]`engine.Use(gin.Recovery())` 替换为 `e.Use(middleware.Recover())`
- [ ] **6. 依赖管理**
- [ ] **7. 依赖管理**
- [ ]`go.mod` 中移除 `github.com/gin-gonic/gin`
- [ ]`go.mod` 中移除 `github.com/swaggo/gin-swagger`
- [ ]`go.mod` 中添加 `github.com/labstack/echo/v4`
- [ ]`go.mod` 中添加 `github.com/swaggo/echo-swagger`
- [ ] 执行 `go mod tidy` 清理依赖项。
- [ ] **7. 验证**
- [ ] **8. 验证**
- [ ] 运行 `go build ./...` 确保项目能够成功编译。
- [ ] 启动服务,手动测试所有 API 端点,验证功能是否与迁移前一致。
- [ ] 访问 `/swagger/index.html`,确认 Swagger UI 是否正常工作。