feat: 优化ParseStructField方法
This commit is contained in:
@@ -42,34 +42,29 @@ func ParseStructField(field reflect.StructField) *StructFieldInfo {
|
|||||||
if !field.IsExported() {
|
if !field.IsExported() {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
info := &StructFieldInfo{
|
|
||||||
Name: field.Name,
|
|
||||||
Type: field.Type,
|
|
||||||
}
|
|
||||||
|
|
||||||
util.ParseStructFieldTag.GetParamName(field)
|
|
||||||
// 解析 JSON tag
|
|
||||||
info.JSONName, info.OmitEmpty = util.ParseStructFieldTag.GetParamName(field)
|
|
||||||
|
|
||||||
// 解析参数描述
|
|
||||||
info.Description = util.ParseStructFieldTag.GetParamDesc(field)
|
|
||||||
// 解析示例值
|
|
||||||
info.Example = util.ParseStructFieldTag.GetExampleValue(field)
|
|
||||||
// 解析验证规则
|
// 解析验证规则
|
||||||
validateRule := util.ParseValidateRule(field.Type, util.ParseStructFieldTag.GetValidateRule(field))
|
validateRule := util.ParseValidateRule(field.Type, util.ParseStructFieldTag.GetValidateRule(field))
|
||||||
info.Required = validateRule.Required
|
info := &StructFieldInfo{
|
||||||
info.Min = validateRule.Min
|
Name: field.Name,
|
||||||
info.Max = validateRule.Max
|
JSONName: "",
|
||||||
info.MinLength = validateRule.Min
|
Type: field.Type,
|
||||||
info.MaxLength = validateRule.Max
|
Description: util.ParseStructFieldTag.GetParamDesc(field), // 解析参数描述
|
||||||
info.Pattern = validateRule.Regexp
|
Example: util.ParseStructFieldTag.GetExampleValue(field), // 解析示例值
|
||||||
info.Format = field.Type.String()
|
Default: util.ParseStructFieldTag.GetDefaultValue(field), // 解析默认值
|
||||||
|
Required: validateRule.Required,
|
||||||
// 解析枚举值
|
Min: validateRule.Min,
|
||||||
info.Enum = validateRule.Oneof
|
Max: validateRule.Max,
|
||||||
info.EnumDesc = util.ParseStructFieldTag.EnumDescription(field)
|
MinLength: validateRule.Min,
|
||||||
|
MaxLength: validateRule.Max,
|
||||||
|
Pattern: validateRule.Regexp,
|
||||||
|
Format: field.Type.String(),
|
||||||
|
Enum: validateRule.Oneof, // 解析枚举值
|
||||||
|
EnumDesc: util.ParseStructFieldTag.EnumDescription(field), // 解析枚举值描述
|
||||||
|
OmitEmpty: false,
|
||||||
|
}
|
||||||
|
|
||||||
|
// 解析 JSON tag
|
||||||
|
info.JSONName, info.OmitEmpty = util.ParseStructFieldTag.GetParamName(field)
|
||||||
return info
|
return info
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user