mirror of
https://github.com/beego/bee.git
synced 2024-11-22 10:10:53 +00:00
Fix of api docs gen bug on object description of structs with anonymous fields
Added json:"-" as omitter on api docs gen of struct field for object description Avoid use json:"omitempty" on api docs gen as object description field name
This commit is contained in:
parent
41477f6d88
commit
9d2067e66e
56
g_docs.go
56
g_docs.go
@ -561,27 +561,51 @@ func getModel(str string) (pkgpath, objectname string, m swagger.Model, realType
|
|||||||
} else {
|
} else {
|
||||||
mp.Type = realType
|
mp.Type = realType
|
||||||
}
|
}
|
||||||
// if the tag contains json tag, set the name to the left most json tag
|
|
||||||
var name = field.Names[0].Name
|
// dont add property if anonymous field
|
||||||
if field.Tag != nil {
|
if field.Names != nil {
|
||||||
|
|
||||||
|
// set property name as field name
|
||||||
|
var name = field.Names[0].Name
|
||||||
|
|
||||||
|
// if no tag skip tag processing
|
||||||
|
if field.Tag == nil {
|
||||||
|
m.Properties[name] = mp
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
|
var tagValues []string
|
||||||
stag := reflect.StructTag(strings.Trim(field.Tag.Value, "`"))
|
stag := reflect.StructTag(strings.Trim(field.Tag.Value, "`"))
|
||||||
if tag := stag.Get("json"); tag != "" {
|
tag := stag.Get("json")
|
||||||
name = tag
|
|
||||||
|
if tag != "" {
|
||||||
|
tagValues = strings.Split(tag, ",")
|
||||||
}
|
}
|
||||||
if thrifttag := stag.Get("thrift"); thrifttag != "" {
|
|
||||||
ts := strings.Split(thrifttag, ",")
|
// dont add property if json tag first value is "-"
|
||||||
if ts[0] != "" {
|
if len(tagValues) == 0 || tagValues[0] != "-" {
|
||||||
name = ts[0]
|
|
||||||
|
// set property name to the left most json tag value only if is not omitempty
|
||||||
|
if len(tagValues) > 0 && tagValues[0] != "omitempty" {
|
||||||
|
name = tagValues[0]
|
||||||
}
|
}
|
||||||
}
|
|
||||||
if required := stag.Get("required"); required != "" {
|
if thrifttag := stag.Get("thrift"); thrifttag != "" {
|
||||||
m.Required = append(m.Required, name)
|
ts := strings.Split(thrifttag, ",")
|
||||||
}
|
if ts[0] != "" {
|
||||||
if desc := stag.Get("description"); desc != "" {
|
name = ts[0]
|
||||||
mp.Description = desc
|
}
|
||||||
|
}
|
||||||
|
if required := stag.Get("required"); required != "" {
|
||||||
|
m.Required = append(m.Required, name)
|
||||||
|
}
|
||||||
|
if desc := stag.Get("description"); desc != "" {
|
||||||
|
mp.Description = desc
|
||||||
|
}
|
||||||
|
|
||||||
|
m.Properties[name] = mp
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
m.Properties[name] = mp
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return
|
return
|
||||||
|
Loading…
Reference in New Issue
Block a user