调整openspace方案
This commit is contained in:
		| @@ -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 特有的功能或上下文用法,导致运行时错误。 | ||||
|   | ||||
| @@ -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 是否正常工作。 | ||||
|   | ||||
		Reference in New Issue
	
	Block a user