diff --git a/openapi/schema.go b/openapi/schema.go index 783d326..ca338f5 100644 --- a/openapi/schema.go +++ b/openapi/schema.go @@ -42,34 +42,29 @@ func ParseStructField(field reflect.StructField) *StructFieldInfo { if !field.IsExported() { 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)) - info.Required = validateRule.Required - info.Min = validateRule.Min - info.Max = validateRule.Max - info.MinLength = validateRule.Min - info.MaxLength = validateRule.Max - info.Pattern = validateRule.Regexp - info.Format = field.Type.String() - - // 解析枚举值 - info.Enum = validateRule.Oneof - info.EnumDesc = util.ParseStructFieldTag.EnumDescription(field) + info := &StructFieldInfo{ + Name: field.Name, + JSONName: "", + Type: field.Type, + Description: util.ParseStructFieldTag.GetParamDesc(field), // 解析参数描述 + Example: util.ParseStructFieldTag.GetExampleValue(field), // 解析示例值 + Default: util.ParseStructFieldTag.GetDefaultValue(field), // 解析默认值 + Required: validateRule.Required, + Min: validateRule.Min, + Max: validateRule.Max, + 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 }