Skip to content
Snippets Groups Projects
Commit c3047f34 authored by Johan de Klerk's avatar Johan de Klerk
Browse files

docs - get array info

parent 27579923
Branches
Tags
No related merge requests found
......@@ -102,7 +102,7 @@ func GetDocs(endpointHandlers map[string]map[string]interface{}, corePath string
docMethod.RequestBody = &requestBody
if handler.RequestBodyType.Kind() == reflect.Struct && handler.RequestBodyType.NumField() > 0 {
schema, err := StructSchema(handler.RequestBodyType.Field(0).Type)
schema, err := StructSchema(handler.RequestBodyType)
if err != nil {
return Docs{}, err
}
......@@ -115,7 +115,7 @@ func GetDocs(endpointHandlers map[string]map[string]interface{}, corePath string
response, responseBodyTypeString := GetResponse(handler)
docMethod.Responses = &response
if handler.ResponseType.Kind() == reflect.Struct && handler.ResponseType.NumField() > 0 {
schema, err := StructSchema(handler.ResponseType.Field(0).Type)
schema, err := StructSchema(handler.ResponseType)
if err != nil {
return Docs{}, err
}
......@@ -289,7 +289,12 @@ func StructSchema(t reflect.Type) (interface{}, error) {
schema["type"] = "object"
case reflect.Slice:
schema["type"] = "array"
schema["items"] = t.Elem()
element := reflect.TypeOf(t).Elem()
items, err := StructSchema(element)
if err != nil {
return nil, errors.Wrapf(err, "failed to document")
}
schema["items"] = items
default:
return nil, errors.Errorf("cannot generate schema for %v kind=%v", t, t.Kind())
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment