diff --git a/swagger/run.go b/swagger/run.go index 90ac89d..d24dde2 100644 --- a/swagger/run.go +++ b/swagger/run.go @@ -135,7 +135,7 @@ func generatePathParameterConfig(swaggerInfo *define.Swagger, pathConfig *define parentPath := "" if strings.ToUpper(itemParamInput.In) == consts.RequestLocationBody && !strings.Contains(realParamName, ".") { realParamName = "jsonBody" - parentPath = pathConfig.Uri + ".jsonBody" + parentPath = strings.ReplaceAll(pathConfig.Uri, ".", "-") + ".jsonBody" } generateParameterDefinitions(swaggerInfo, pathConfig.Uri, parentPath, itemParamInput.Name, itemParamInput) if _, exist := hasDealTable[realParamName]; !exist { @@ -172,7 +172,7 @@ func generatePathResponseConfig(swaggerInfo *define.Swagger, pathConfig *define. continue } // name 可能是 x.x.x 递归数组, 或者 x.x.[].x - outputDefine := strings.TrimLeft(pathConfig.Uri, "/") + "." + itemResponseConfig.Code + ".output" + outputDefine := strings.TrimLeft(strings.ReplaceAll(pathConfig.Uri, ".", "-"), "/") + "." + itemResponseConfig.Code + ".output" generateParameterDefinitions(swaggerInfo, pathConfig.Uri, outputDefine, itemResponseInput.Field, &define.SwaggerParameterInput{ Type: itemResponseInput.Type, Description: itemResponseInput.Description, @@ -202,7 +202,7 @@ func generatePathResponseConfig(swaggerInfo *define.Swagger, pathConfig *define. // Date : 14:06 2024/4/22 func generateParameterDefinitions(swaggerInfo *define.Swagger, uri string, parentPath string, subPath string, paramConfig *define.SwaggerParameterInput) { setGlobalMapDefinition(swaggerInfo, paramConfig.Type) - uri = strings.TrimLeft(uri, "/") + uri = strings.ReplaceAll(strings.TrimLeft(uri, "/"), ".", "-") parentPath = strings.TrimLeft(parentPath, "/") checkPath := getCheckPath(parentPath) subPathArr := strings.Split(subPath, ".") @@ -302,6 +302,16 @@ func handleOneLevelSubPath(swaggerInfo *define.Swagger, uri string, parentPath s // 长度为1, 还不在 body, 无需生成结构体 return } + if strings.HasSuffix(paramConfig.Type, "[]") { + swaggerInfo.Definitions[parentPath].Properties[subPath] = &define.SwaggerDefinitionProperty{ + Description: paramConfig.Description, + Type: consts.SwaggerDataTypeArray, + Items: map[string]string{ + consts.SwaggerTypeKey: util.GetSwaggerType(strings.TrimSuffix(paramConfig.Type, "[]")), + }, + } + return + } if isGlobalMapType(paramConfig.Type) { swaggerInfo.Definitions[parentPath].Properties[subPath] = &define.SwaggerDefinitionProperty{ Description: paramConfig.Description,