Update parser.go

#61
This commit is contained in:
MaxToby 2022-11-25 19:59:09 +08:00 committed by GitHub
parent c530462b42
commit a78fb7b1a1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -87,7 +87,7 @@ func applyGenerate(p *plugin.Plugin, host string, basePath string) (*swaggerObje
newSecDefValue.In = "header" newSecDefValue.In = "header"
s.SecurityDefinitions["apiKey"] = newSecDefValue s.SecurityDefinitions["apiKey"] = newSecDefValue
//s.Security = append(s.Security, swaggerSecurityRequirementObject{"apiKey": []string{}}) // s.Security = append(s.Security, swaggerSecurityRequirementObject{"apiKey": []string{}})
requestResponseRefs := refMap{} requestResponseRefs := refMap{}
renderServiceRoutes(p.Api.Service, p.Api.Service.Groups, s.Paths, requestResponseRefs) renderServiceRoutes(p.Api.Service, p.Api.Service.Groups, s.Paths, requestResponseRefs)
@ -259,9 +259,19 @@ func renderServiceRoutes(service spec.Service, groups []spec.Group, paths swagge
} }
desc := "A successful response." desc := "A successful response."
respRef := "" respSchema := schemaCore{}
// respRef := swaggerSchemaObject{}
if route.ResponseType != nil && len(route.ResponseType.Name()) > 0 { if route.ResponseType != nil && len(route.ResponseType.Name()) > 0 {
respRef = fmt.Sprintf("#/definitions/%s", route.ResponseType.Name()) if strings.HasPrefix(route.ResponseType.Name(), "[]") {
refTypeName := strings.Replace(route.ResponseType.Name(), "[", "", 1)
refTypeName = strings.Replace(refTypeName, "]", "", 1)
respSchema.Type = "array"
respSchema.Items = &swaggerItemsObject{Ref: fmt.Sprintf("#/definitions/%s", refTypeName)}
} else {
respSchema.Ref = fmt.Sprintf("#/definitions/%s", route.ResponseType.Name())
}
} }
tags := service.Name tags := service.Name
if value := group.GetAnnotation("group"); len(value) > 0 { if value := group.GetAnnotation("group"); len(value) > 0 {
@ -279,9 +289,7 @@ func renderServiceRoutes(service spec.Service, groups []spec.Group, paths swagge
"200": swaggerResponseObject{ "200": swaggerResponseObject{
Description: desc, Description: desc,
Schema: swaggerSchemaObject{ Schema: swaggerSchemaObject{
schemaCore: schemaCore{ schemaCore: respSchema,
Ref: respRef,
},
}, },
}, },
}, },
@ -457,6 +465,7 @@ func renderReplyAsDefinition(d swaggerDefinitionsObject, m messageMap, p []spec.
if kv.Key == "" { if kv.Key == "" {
memberStruct, _ := member.Type.(spec.DefineStruct) memberStruct, _ := member.Type.(spec.DefineStruct)
for _, m := range memberStruct.Members { for _, m := range memberStruct.Members {
if strings.Contains(m.Tag, "header") { if strings.Contains(m.Tag, "header") {
continue continue
} }
@ -518,6 +527,7 @@ func hasPathParameters(member spec.Member) bool {
return false return false
} }
func schemaOfField(member spec.Member) swaggerSchemaObject { func schemaOfField(member spec.Member) swaggerSchemaObject {
ret := swaggerSchemaObject{} ret := swaggerSchemaObject{}