支持匿名字段 #9
@ -610,17 +610,22 @@ func (g *Generate) handleAnonymousField(schemaName string, field reflect.StructF
|
|||||||
g.handleAnonymousField(schemaName, handleType.Field(i))
|
g.handleAnonymousField(schemaName, handleType.Field(i))
|
||||||
continue
|
continue
|
||||||
} else {
|
} else {
|
||||||
if handleType.Kind() == reflect.Map || handleType.Kind() == reflect.Slice || handleType.Kind() == reflect.Array || handleType.Kind() == reflect.Struct || handleType.Kind() == reflect.Ptr {
|
itemField := handleType.Field(i)
|
||||||
|
if itemField.Type.Kind() == reflect.Map || itemField.Type.Kind() == reflect.Slice || itemField.Type.Kind() == reflect.Array || itemField.Type.Kind() == reflect.Struct || itemField.Type.Kind() == reflect.Ptr {
|
||||||
g.AddComponentsSchema(schemaName, handleType.Field(i).Type.PkgPath(), handleType.Field(i).Type)
|
g.AddComponentsSchema(schemaName, handleType.Field(i).Type.PkgPath(), handleType.Field(i).Type)
|
||||||
continue
|
continue
|
||||||
} else {
|
} else {
|
||||||
g.docData.Components.Schemas[schemaName].Properties[ParseStructField.GetParamName(handleType.Field(i))] = &define.Property{
|
paramName := ParseStructField.GetParamName(itemField)
|
||||||
|
g.docData.Components.Schemas[schemaName].Properties[paramName] = &define.Property{
|
||||||
Type: g.realBaseType2SwaggerType(handleType.Field(i).Type.String()),
|
Type: g.realBaseType2SwaggerType(handleType.Field(i).Type.String()),
|
||||||
Format: handleType.Field(i).Type.String(),
|
Format: handleType.Field(i).Type.String(),
|
||||||
Enum: ValidateRule.Enum(handleType.Field(i)),
|
Enum: ValidateRule.Enum(handleType.Field(i)),
|
||||||
Default: ParseStructField.GetDefaultValue(handleType.Field(i)),
|
Default: ParseStructField.GetDefaultValue(handleType.Field(i)),
|
||||||
Description: ParseStructField.GetParamDesc(handleType.Field(i)),
|
Description: ParseStructField.GetParamDesc(handleType.Field(i)),
|
||||||
}
|
}
|
||||||
|
if ValidateRule.IsRequired(itemField) {
|
||||||
|
g.docData.Components.Schemas[schemaName].Required = append(g.docData.Components.Schemas[schemaName].Required, paramName)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -25,10 +25,15 @@ type Meta struct {
|
|||||||
//
|
//
|
||||||
// Date : 17:55 2024/7/19
|
// Date : 17:55 2024/7/19
|
||||||
func Test_parser_Openapi3(t *testing.T) {
|
func Test_parser_Openapi3(t *testing.T) {
|
||||||
|
type UserExt struct {
|
||||||
|
Job string `json:"job" dc:"job" binding:"required"`
|
||||||
|
Height string `json:"height" dc:"height" binding:"required"`
|
||||||
|
}
|
||||||
type User struct {
|
type User struct {
|
||||||
Meta `json:"-" deprecated:"false" path:"/user/detail" method:"POST" desc:"测试接口" tag:"用户,搜索" content_type:"application/json" output_content_type:"application/json"`
|
Meta `json:"-" deprecated:"false" path:"/user/detail" method:"POST" desc:"测试接口" tag:"用户,搜索" content_type:"application/json" output_content_type:"application/json"`
|
||||||
Name *string `json:"name" d:"zhang" desc:"用户姓名" binding:"required"`
|
Name *string `json:"name" d:"zhang" desc:"用户姓名" binding:"required"`
|
||||||
Age string `json:"age" d:"18" desc:"年龄" binding:"required,oneof=12 13 18 90"`
|
Age string `json:"age" d:"18" desc:"年龄" binding:"required,oneof=12 13 18 90"`
|
||||||
|
UserExt
|
||||||
}
|
}
|
||||||
type UserDelete struct {
|
type UserDelete struct {
|
||||||
Meta `json:"-" deprecated:"false" path:"/user/detail" method:"DELETE" desc:"测试接口" tag:"用户,搜索" content_type:"application/json" output_content_type:"application/json"`
|
Meta `json:"-" deprecated:"false" path:"/user/detail" method:"DELETE" desc:"测试接口" tag:"用户,搜索" content_type:"application/json" output_content_type:"application/json"`
|
||||||
|
Loading…
x
Reference in New Issue
Block a user