diff --git a/generate/entities.go b/generate/entities.go index 87d54e7..ec55c02 100644 --- a/generate/entities.go +++ b/generate/entities.go @@ -10,11 +10,17 @@ import ( var swaggerMapTypes = map[string]reflect.Kind{ "string": reflect.String, + "*string": reflect.String, "int": reflect.Int, + "*int": reflect.Int, "int32": reflect.Int, + "*int32": reflect.Int, "uint32": reflect.Int, + "*uint32": reflect.Int, "uint64": reflect.Int64, + "*uint64": reflect.Int64, "int64": reflect.Int64, + "*int64": reflect.Int64, "[]string": reflect.Slice, "[]int": reflect.Slice, "[]int64": reflect.Slice, @@ -22,9 +28,13 @@ var swaggerMapTypes = map[string]reflect.Kind{ "[]uint32": reflect.Slice, "[]uint64": reflect.Slice, "bool": reflect.Bool, + "*bool": reflect.Bool, "struct": reflect.Struct, + "*struct": reflect.Struct, "float32": reflect.Float32, + "*float32": reflect.Float32, "float64": reflect.Float64, + "*float64": reflect.Float64, } // http://swagger.io/specification/#infoObject diff --git a/generate/parser.go b/generate/parser.go index d6d3d78..a82e357 100644 --- a/generate/parser.go +++ b/generate/parser.go @@ -59,7 +59,7 @@ func applyGenerate(p *plugin.Plugin, host string, basePath string) (*swaggerObje newSecDefValue.In = "header" s.SecurityDefinitions["apiKey"] = newSecDefValue - s.Security = append(s.Security, swaggerSecurityRequirementObject{"apiKey": []string{}}) + //s.Security = append(s.Security, swaggerSecurityRequirementObject{"apiKey": []string{}}) requestResponseRefs := refMap{} renderServiceRoutes(p.Api.Service, p.Api.Service.Groups, s.Paths, requestResponseRefs) @@ -233,6 +233,10 @@ func renderServiceRoutes(service spec.Service, groups []spec.Group, paths swagge operationObject.Description = strings.ReplaceAll(operationObject.Description, "\"", "") + if group.Annotation.Properties["jwt"] != "" { + operationObject.Security = &[]swaggerSecurityRequirementObject{{"apiKey": []string{}}} + } + switch strings.ToUpper(route.Method) { case http.MethodGet: pathItemObject.Get = operationObject @@ -263,6 +267,10 @@ func renderReplyAsDefinition(d swaggerDefinitionsObject, m messageMap, p []spec. schema.Title = defineStruct.Name() for _, member := range defineStruct.Members { + if hasPathParameters(member) { + continue + } + kv := keyVal{Value: schemaOfField(member)} kv.Key = member.Name if tag, err := member.GetPropertyName(); err == nil { @@ -297,6 +305,15 @@ func renderReplyAsDefinition(d swaggerDefinitionsObject, m messageMap, p []spec. } } +func hasPathParameters(member spec.Member) bool { + for _, tag := range member.Tags() { + if tag.Key == "path" { + return true + } + } + + return false +} func schemaOfField(member spec.Member) swaggerSchemaObject { ret := swaggerSchemaObject{}