diff --git a/api/context.go b/api/context.go index ffe4a5ebc810718fa77f9ef79a8b67df5cfa0669..7cc3f528975041e887ab4f44365d8e6cc5f60fd2 100644 --- a/api/context.go +++ b/api/context.go @@ -133,7 +133,12 @@ func (ctx apiContext) extract(name string, t reflect.Type, v reflect.Value) erro return errors.Errorf("%s does not support >1 values(%v)", n, strings.Join(paramStrValues, ",")) } //single value specified - if err := reflection.SetValue(v.Field(i), paramStrValues[0]); err != nil { + valueField := v.Field(i) + if valueField.Kind() == reflect.Ptr { + valueField.Set(reflect.New(valueField.Type().Elem())) + valueField = valueField.Elem() + } + if err := reflection.SetValue(valueField, paramStrValues[0]); err != nil { return errors.Wrapf(err, "failed to set %s=%s", n, paramStrValues[0]) } }