feat: 修复枚举值赋值问题

This commit is contained in:
2026-01-05 18:28:11 +08:00
parent 1157973b65
commit f4447d50d6

View File

@@ -120,27 +120,6 @@ func ParseStructField(field reflect.StructField) *StructFieldInfo {
return info return info
} }
func parseExampleValue(example string, t reflect.Type) interface{} {
// 根据类型解析示例值
switch t.Kind() {
case reflect.String:
return example
case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:
if val, err := strconv.ParseInt(example, 10, 64); err == nil {
return val
}
case reflect.Float32, reflect.Float64:
if val, err := strconv.ParseFloat(example, 64); err == nil {
return val
}
case reflect.Bool:
if val, err := strconv.ParseBool(example); err == nil {
return val
}
}
return example
}
// GenerateOpenAPISchema 生成完整的 OpenAPI Schema // GenerateOpenAPISchema 生成完整的 OpenAPI Schema
func GenerateOpenAPISchema(s interface{}) *openapi3.SchemaRef { func GenerateOpenAPISchema(s interface{}) *openapi3.SchemaRef {
t := reflect.TypeOf(s) t := reflect.TypeOf(s)
@@ -267,7 +246,10 @@ func applyFieldInfoToSchema(schema *openapi3.Schema, info *StructFieldInfo) {
schema.Format = info.Format schema.Format = info.Format
} }
if len(info.Enum) > 0 { if len(info.Enum) > 0 {
schema.Enum = info.Enum schema.Enum = make([]any, 0)
for _, item := range info.Enum {
schema.Enum = append(schema.Enum, item.Value)
}
} }
} }