Merge pull request #31 from soasurs/main

Add Pointer Type for API Type Definitions
This commit is contained in:
MaxToby 2022-04-18 23:10:23 +08:00 committed by GitHub
commit 2e39587a45
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 28 additions and 1 deletions

View File

@ -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

View File

@ -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{}