From 15afacbabed411e2bbd88c095e1158a5675ef4a6 Mon Sep 17 00:00:00 2001 From: Lansong <2095621390@qq.com> Date: Wed, 22 Nov 2023 08:13:56 +0800 Subject: [PATCH] =?UTF-8?q?feat(entities.go,parser.go):=20=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E4=BA=86=E5=AF=B9form-data=E7=9A=84=E6=94=AF=E6=8C=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1.在swaggerOperationObject中添加Consumes参数 2.对请求的tag类型进行判断,添加对应的请求体类型。 --- generate/entities.go | 6 +++--- generate/parser.go | 17 +++++++++++++++++ 2 files changed, 20 insertions(+), 3 deletions(-) diff --git a/generate/entities.go b/generate/entities.go index 0abebe7..65a207d 100644 --- a/generate/entities.go +++ b/generate/entities.go @@ -137,9 +137,9 @@ type swaggerOperationObject struct { RequestBody *struct { Content swaggerContentObject `json:"content,omitempty"` } `json:"requestBody,omitempty"` - Tags []string `json:"tags,omitempty"` - Deprecated bool `json:"deprecated,omitempty"` - + Tags []string `json:"tags,omitempty"` + Deprecated bool `json:"deprecated,omitempty"` + Consumes string `json:"consumes,omitempty"` Security *[]swaggerSecurityRequirementObject `json:"security,omitempty"` ExternalDocs *swaggerExternalDocumentationObject `json:"externalDocs,omitempty"` } diff --git a/generate/parser.go b/generate/parser.go index 123b469..2787e60 100644 --- a/generate/parser.go +++ b/generate/parser.go @@ -242,6 +242,14 @@ func renderServiceRoutes(service spec.Service, groups []spec.Group, paths swagge Required: true, Schema: &schema, } + + for _, member := range defineStruct.Members { + if strings.Contains(member.Tag, "form") { + parameter.In = "formData" + break + } + } + doc := strings.Join(route.RequestType.Documents(), ",") doc = strings.Replace(doc, "//", "", -1) @@ -296,6 +304,15 @@ func renderServiceRoutes(service spec.Service, groups []spec.Group, paths swagge }, } + if defineStruct, ok := route.RequestType.(spec.DefineStruct); ok { + for _, member := range defineStruct.Members { + if strings.Contains(member.Tag, "form") { + operationObject.Consumes = "multipart/form-data" + break + } + } + } + for _, v := range route.Doc { markerIndex := strings.Index(v, atRespDoc) if markerIndex >= 0 {