参数配置解析

This commit is contained in:
白茶清欢 2025-02-07 18:14:57 +08:00
parent 5d19efa8cf
commit 7ddd96bcb7
2 changed files with 17 additions and 9 deletions

View File

@ -154,7 +154,17 @@ func (c controller) parseParamConfig(formDataType reflect.Type) []UriParam {
if jsonTag == "" { if jsonTag == "" {
jsonTag = structField.Name 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 return res
} }

View File

@ -21,7 +21,7 @@ const (
TagNamePath = "path" // 接口的请求路径 TagNamePath = "path" // 接口的请求路径
TagNameMethod = "method" // 接口的请求方法 TagNameMethod = "method" // 接口的请求方法
TagNameUriTag = "tag" // 接口的tag TagNameUriTag = "tag" // 接口的tag
TagNameDesc = "desc" // 接口的描述 TagNameDesc = "desc" // 接口/接口参数的描述
TagNameOutputStrict = "output_strict" // 接口数据是否为严格模式 : 严格模式, 响应数据必须是结构体/map非严格模式返回任意值 TagNameOutputStrict = "output_strict" // 接口数据是否为严格模式 : 严格模式, 响应数据必须是结构体/map非严格模式返回任意值
TagNameBinding = "binding" // gin 内置的验证规则tag TagNameBinding = "binding" // gin 内置的验证规则tag
TagNameValidate = "validate" // validator v10 默认的验证规则tag TagNameValidate = "validate" // validator v10 默认的验证规则tag
@ -56,8 +56,6 @@ type UriParam struct {
Type string `json:"type"` // 参数类型 Type string `json:"type"` // 参数类型
Validate string `json:"validate"` // 验证规则: validator/v10 库 Validate string `json:"validate"` // 验证规则: validator/v10 库
ErrorMsg string `json:"error_msg"` // 验证失败的错误信息 ErrorMsg string `json:"error_msg"` // 验证失败的错误信息
DisableAutoType bool `json:"disable_auto_type"` // 禁用自动类型转换
Sort string `json:"sort"` // 参数读取顺序: 默认 POST : body > query > path GET : query > path > body
} }
const ( const (