From 48bb818654d7ff06e216c05598bd06600d818ccc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=99=BD=E8=8C=B6=E6=B8=85=E6=AC=A2?= Date: Thu, 25 Apr 2024 17:54:15 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=93=8D=E5=BA=94=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E7=94=9F=E6=88=90=E7=9A=84BUG?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- swagger/run.go | 23 ++++++++++++++++++++--- swagger/run_test.go | 6 ++++++ 2 files changed, 26 insertions(+), 3 deletions(-) diff --git a/swagger/run.go b/swagger/run.go index 33acd2d..5e453ec 100644 --- a/swagger/run.go +++ b/swagger/run.go @@ -298,7 +298,7 @@ func generateParameterDefinitions(swaggerInfo *define.Swagger, uri string, paren // // Date : 16:50 2024/4/25 func handleOneLevelSubPath(swaggerInfo *define.Swagger, uri string, parentPath string, subPath string, paramConfig *define.SwaggerParameterInput) { - if paramConfig.In != strings.ToLower(consts.RequestLocationBody) { + if paramConfig.In != strings.ToLower(consts.RequestLocationBody) && !isGenerateOutput(parentPath) { // 长度为1, 还不在 body, 无需生成结构体 return } @@ -419,8 +419,25 @@ func addRequiredField(swaggerInfo *define.Swagger, definitionName string, field // Date : 17:01 2024/4/25 func getCheckPath(parentPath string) string { parentPathArr := strings.Split(parentPath, ".") - if len(parentPathArr) >= 2 { - return strings.Join([]string{parentPathArr[0], parentPathArr[1]}, ".") + if isGenerateOutput(parentPath) { + return strings.Join([]string{parentPathArr[0], parentPathArr[1], parentPathArr[2]}, ".") + } else { + if len(parentPathArr) >= 2 { + return strings.Join([]string{parentPathArr[0], parentPathArr[1]}, ".") + } } return parentPath } + +// isGenerateOutput ... +// +// Author : go_developer@163.com<白茶清欢> +// +// Date : 17:52 2024/4/25 +func isGenerateOutput(parentPath string) bool { + parentPathArr := strings.Split(parentPath, ".") + if len(parentPathArr) >= 3 && parentPathArr[2] == "output" { + return true + } + return false +} diff --git a/swagger/run_test.go b/swagger/run_test.go index e82c023..a9b3c4e 100644 --- a/swagger/run_test.go +++ b/swagger/run_test.go @@ -135,6 +135,12 @@ func TestGenerate(t *testing.T) { Field: "person.nick_name", IsRequired: false, }, + &define.SwaggerResponseItemInput{ + Type: consts.DataTypeMapAnyAny, + Description: "测试返回生成map", + Field: "obj", + IsRequired: false, + }, }, }, },