调整openspace方案
This commit is contained in:
@@ -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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user