array format

This commit is contained in:
zhangyanzhe 2017-07-19 14:42:46 +08:00
parent aae0cc4587
commit 254174eda6
1 changed files with 24 additions and 7 deletions

View File

@ -612,10 +612,25 @@ func parserComments(f *ast.FuncDecl, controllerName, pkgpath string) error {
pp := strings.Split(p[2], ".") pp := strings.Split(p[2], ".")
typ := pp[len(pp)-1] typ := pp[len(pp)-1]
if len(pp) >= 2 { if len(pp) >= 2 {
m, mod, realTypes := getModel(p[2]) isArray := false
para.Schema = &swagger.Schema{ if p[1] == "body" || p[1] == "formData" || strings.HasPrefix(p[2], "[]") {
Ref: "#/definitions/" + m, p[2] = p[2][2:]
isArray = true
} }
m, mod, realTypes := getModel(p[2])
if isArray {
para.Schema = &swagger.Schema{
Type: "array",
Items: &swagger.Schema{
Ref: "#/definitions/" + m,
},
}
} else {
para.Schema = &swagger.Schema{
Ref: "#/definitions/" + m,
}
}
if _, ok := modelsList[pkgpath+controllerName]; !ok { if _, ok := modelsList[pkgpath+controllerName]; !ok {
modelsList[pkgpath+controllerName] = make(map[string]swagger.Schema) modelsList[pkgpath+controllerName] = make(map[string]swagger.Schema)
} }
@ -762,10 +777,12 @@ func setParamType(para *swagger.Parameter, typ string, pkgpath, controllerName s
appendModels(pkgpath, controllerName, realTypes) appendModels(pkgpath, controllerName, realTypes)
} }
if isArray { if isArray {
para.Type = "array" para.Schema = &swagger.Schema{
para.Items = &swagger.ParameterItems{ Type: "array",
Type: paraType, Items: &swagger.Schema{
Format: paraFormat, Type: paraType,
Format: paraFormat,
},
} }
} else { } else {
para.Type = paraType para.Type = paraType