调整openspace方案

This commit is contained in:
2025-10-30 17:34:25 +08:00
parent 6228534155
commit 5b064b4015
2 changed files with 291 additions and 6 deletions

View File

@@ -60,9 +60,18 @@
- **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` 标签保持不变
- **From**: Gin 相关的注解,主要包括 `binding:"..."``form:"..."`
- **To**: Echo 兼容的注解,主要包括 `validate:"..."``query:"..."`
- **Rationale**: Gin 使用 `binding` 标签进行请求参数绑定和验证`form` 标签用于表单或查询参数绑定。Echo 框架通常结合 `go-playground/validator` 库进行验证,其对应的标签为 `validate`对于查询参数Echo 默认使用 `query` 标签。
- **通用修改规则**
- `json:"..."` 标签保持不变。
- `example:"..."` 标签保持不变。
-`binding:"required"` 替换为 `validate:"required"`
-`form:"field,default=value"` 替换为 `query:"field"``default` 行为需在代码中手动实现(如在 DTO 构造函数中设置默认值),标签中不再需要。
-`form:"field"` 替换为 `query:"field"`
- 对于 `json:"...,omitempty"` 的字段,在 `validate` 标签中也添加 `omitempty`
- 对于结构体切片或数组字段,在 `validate` 标签中添加 `dive` 以递归验证切片元素。
- 根据字段的业务含义,添加更具体的 `validate` 规则(例如 `min=0`, `cron` 等)。
## Risks / Trade-offs