升级文档管理, 支持openapi3, 使用 github.com/getkin/kin-openapi/openapi3 实现 #23

Merged
zhangdeman merged 26 commits from feature/upgrade_api_doc_generate into master 2026-01-06 23:26:37 +08:00
Showing only changes of commit f4447d50d6 - Show all commits

View File

@@ -120,27 +120,6 @@ func ParseStructField(field reflect.StructField) *StructFieldInfo {
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
func GenerateOpenAPISchema(s interface{}) *openapi3.SchemaRef {
t := reflect.TypeOf(s)
@@ -267,7 +246,10 @@ func applyFieldInfoToSchema(schema *openapi3.Schema, info *StructFieldInfo) {
schema.Format = info.Format
}
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)
}
}
}