From 9f2059837c0bd9e115bad4fbf9395d5dec4d9e0d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=99=BD=E8=8C=B6=E6=B8=85=E6=AC=A2?= Date: Tue, 6 Jan 2026 10:05:29 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E4=BC=98=E5=8C=96ParseStructField?= =?UTF-8?q?=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- openapi/schema.go | 45 ++++++++++++++++++++------------------------- 1 file changed, 20 insertions(+), 25 deletions(-) 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 }