From 58f17b3c24f7692f78f98325f387923a0378ccf9 Mon Sep 17 00:00:00 2001 From: Young <605887476@qq.com> Date: Tue, 31 May 2022 09:57:37 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=85=BC=E5=AE=B9=E4=BA=8C=E7=BB=B4?= =?UTF-8?q?=E6=95=B0=E7=BB=84=E7=94=9F=E6=88=90,=20=E6=9B=B4=E6=96=B0=20go?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- example/user.api | 1 + example/user.json | 33 +++++++++++++-------------------- generate/parser.go | 11 +++++++++++ 3 files changed, 25 insertions(+), 20 deletions(-) diff --git a/example/user.api b/example/user.api index 6e07bc2..2b1409c 100644 --- a/example/user.api +++ b/example/user.api @@ -30,6 +30,7 @@ type ( Birthday string `json:"birthday"` Description string `json:"description"` Tag []string `json:"tag"` + Tags [][]string `json:"tags"` } UserSearchReq { diff --git a/example/user.json b/example/user.json index 028c404..77486f6 100644 --- a/example/user.json +++ b/example/user.json @@ -36,7 +36,6 @@ } } ], - "requestBody": {}, "tags": [ "user-api" ] @@ -63,7 +62,6 @@ } } ], - "requestBody": {}, "tags": [ "user-api" ] @@ -90,7 +88,6 @@ "type": "string" } ], - "requestBody": {}, "tags": [ "user-api" ] @@ -116,7 +113,6 @@ "type": "string" } ], - "requestBody": {}, "tags": [ "user-api" ] @@ -183,6 +179,15 @@ "items": { "type": "string" } + }, + "tags": { + "type": "array", + "items": { + "type": "array", + "items": { + "type": "string" + } + } } }, "title": "UserInfoReply", @@ -191,20 +196,13 @@ "age", "birthday", "description", - "tag" + "tag", + "tags" ] }, "UserInfoReq": { "type": "object", - "properties": { - "id": { - "type": "string" - } - }, - "title": "UserInfoReq", - "required": [ - "id" - ] + "title": "UserInfoReq" }, "UserSearchReq": { "type": "object", @@ -227,10 +225,5 @@ "name": "Authorization", "in": "header" } - }, - "security": [ - { - "apiKey": [] - } - ] + } } diff --git a/generate/parser.go b/generate/parser.go index 137b93c..3819241 100644 --- a/generate/parser.go +++ b/generate/parser.go @@ -390,6 +390,17 @@ func schemaOfField(member spec.Member) swaggerSchemaObject { core = schemaCore{Type: "object"} } else if refTypeName == "mapstringstring" { core = schemaCore{Type: "object"} + } else if strings.HasPrefix(refTypeName, "[]") { + core = schemaCore{Type: "array"} + + tempKind := swaggerMapTypes[strings.Replace(refTypeName, "[]", "", -1)] + ftype, format, ok := primitiveSchema(tempKind, refTypeName) + if ok { + core.Items = &swaggerItemsObject{Type: ftype, Format: format} + } else { + core.Items = &swaggerItemsObject{Type: ft.String(), Format: "UNKNOWN"} + } + } else { core = schemaCore{ Ref: "#/definitions/" + refTypeName,