调整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