diff --git a/router/controller.go b/router/controller.go index 8c6f5da..22ec1cf 100644 --- a/router/controller.go +++ b/router/controller.go @@ -154,7 +154,17 @@ func (c controller) parseParamConfig(formDataType reflect.Type) []UriParam { if jsonTag == "" { jsonTag = structField.Name } - + validate := strings.TrimSpace(structField.Tag.Get(TagNameBinding)) + if len(validate) == 0 { + validate = strings.TrimSpace(structField.Tag.Get(TagNameValidate)) + } + res = append(res, UriParam{ + Field: structField.Name, + Name: jsonTag, + Type: structField.Type.String(), + Validate: validate, + ErrorMsg: "", + }) } return res } diff --git a/router/define.go b/router/define.go index 4632d9d..b8121f7 100644 --- a/router/define.go +++ b/router/define.go @@ -21,7 +21,7 @@ const ( TagNamePath = "path" // 接口的请求路径 TagNameMethod = "method" // 接口的请求方法 TagNameUriTag = "tag" // 接口的tag - TagNameDesc = "desc" // 接口的描述 + TagNameDesc = "desc" // 接口/接口参数的描述 TagNameOutputStrict = "output_strict" // 接口数据是否为严格模式 : 严格模式, 响应数据必须是结构体/map,非严格模式返回任意值 TagNameBinding = "binding" // gin 内置的验证规则tag TagNameValidate = "validate" // validator v10 默认的验证规则tag @@ -51,13 +51,11 @@ type UriConfig struct { // // Date : 15:40 2025/1/27 type UriParam struct { - Field string `json:"field"` // 结构体字段 - Name string `json:"name"` // 参数名称 - Type string `json:"type"` // 参数类型 - Validate string `json:"validate"` // 验证规则: validator/v10 库 - ErrorMsg string `json:"error_msg"` // 验证失败的错误信息 - DisableAutoType bool `json:"disable_auto_type"` // 禁用自动类型转换 - Sort string `json:"sort"` // 参数读取顺序: 默认 POST : body > query > path GET : query > path > body + Field string `json:"field"` // 结构体字段 + Name string `json:"name"` // 参数名称 + Type string `json:"type"` // 参数类型 + Validate string `json:"validate"` // 验证规则: validator/v10 库 + ErrorMsg string `json:"error_msg"` // 验证失败的错误信息 } const (