升级文档管理, 支持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 9f2059837c - Show all commits

View File

@@ -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
}