修复数组指针解析的BUG #4

Merged
zhangdeman merged 2 commits from feature/fix_nested_model into master 2025-02-15 13:13:36 +08:00
2 changed files with 14 additions and 10 deletions
Showing only changes of commit e41bac4cd1 - Show all commits

View File

@ -547,6 +547,9 @@ func (g *Generate) parseSliceItem(rootSchemaName string, inputType reflect.Type)
}
sliceValue := reflect.MakeSlice(inputType, 1, 1)
sliceItemType := sliceValue.Index(0).Type()
if sliceItemType.Kind() == reflect.Ptr {
sliceItemType = sliceItemType.Elem()
}
g.AddComponentsSchema(rootSchemaName, sliceItemType.PkgPath(), sliceItemType)
if len(sliceItemType.PkgPath()) == 0 {
return sliceItemType.String()
@ -563,6 +566,7 @@ func (g *Generate) getSchemaRef(schemaName string) string {
if "" == schemaName {
return ""
}
schemaName = strings.ReplaceAll(schemaName, "*", "") // 去除指针类型 *
return "#/components/schemas/" + strings.ReplaceAll(schemaName, "/", "-")
}

View File

@ -27,7 +27,7 @@ type Meta struct {
func Test_parser_Openapi3(t *testing.T) {
type User struct {
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"`
}
type UserDelete struct {
@ -52,14 +52,14 @@ func Test_parser_Openapi3(t *testing.T) {
}
type List struct {
Total int64 `json:"total" binding:"required"`
UserList []User `json:"user_list"`
UserList []*User `json:"user_list"`
}
var o List
var f User
var fd UserDelete
var up UserPut
var ug UserGet
var uh UserHead
var o *List
var f *User
var fd *UserDelete
var up *UserPut
var ug *UserGet
var uh *UserHead
g := NewOpenapiDoc(nil, []*define.ServerItem{
&define.ServerItem{
Url: "http://127.0.0.1/v1",