修复设置属性可能出现的NPE问题

This commit is contained in:
2025-02-20 17:56:12 +08:00
parent 6987b4829b
commit 2fe0d11b46
2 changed files with 21 additions and 7 deletions

View File

@ -364,20 +364,19 @@ func (g *Generate) ParseReadConfigParam(requestCfg *define.UriBaseConfig, baseRe
continue
}
if inputType.Field(i).Type.Kind() == reflect.Interface {
baseReqCfg.Parameters = append(baseReqCfg.Parameters, &define.PathConfigParameter{
itemParam := &define.PathConfigParameter{
Name: ParseStructFieldTag.GetParamName(inputType.Field(i)),
In: consts.SwaggerParameterInQuery,
Description: ParseStructFieldTag.GetParamDesc(inputType.Field(i)),
Required: ValidateRule.IsRequired(inputType.Field(i)),
Deprecated: ParseStructFieldTag.Deprecated(inputType.Field(i)),
Schema: &define.Schema{
OneOf: g.anyTypeConfig(inputType.Field(i)).OneOf,
Format: realInputTypeFormat,
Enum: ValidateRule.Enum(inputType.Field(i)),
XEnumDescription: ParseStructFieldTag.EnumDescription(inputType.Field(i)),
Example: ParseStructFieldTag.GetExampleValue(inputType.Field(i)),
OneOf: g.anyTypeConfig(inputType.Field(i)).OneOf,
Format: realInputTypeFormat,
},
})
}
g.setStructFieldProperty(itemParam.Schema, inputType.Field(i))
baseReqCfg.Parameters = append(baseReqCfg.Parameters, itemParam)
continue
}
if inputType.Field(i).Type.Kind() == reflect.Ptr {
@ -756,6 +755,20 @@ func (g *Generate) setStructFieldProperty(schema *define.Schema, structField ref
if isRequired {
schema.Required = append(schema.Required, paramName)
}
if nil == schema.Properties[paramName] {
if schema.Type == consts.SwaggerDataTypeString {
schema.MinLength = minVal
schema.MaxLength = maxVal
} else {
schema.Minimum = minVal
schema.Maximum = maxVal
}
schema.Enum = enum
schema.XEnumDescription = xEnumDescription
schema.Example = example
schema.Description = description
return
}
if schema.Properties[paramName].Type == consts.SwaggerDataTypeString {
schema.Properties[paramName].MinLength = minVal
schema.Properties[paramName].MaxLength = maxVal