diff --git a/router/handler.go b/router/handler.go index 1dd18c5..5f85d45 100644 --- a/router/handler.go +++ b/router/handler.go @@ -36,19 +36,21 @@ func RequestHandler(uriCfg UriConfig) gin.HandlerFunc { formParam = reflect.New(uriCfg.FormDataType) } formValue := formParam.Interface() - if err = request.Form.Parse(ctx, &formParam); nil != err { + if err = request.Form.Parse(ctx, formValue); nil != err { // 格式化验证错误的信息 err = GetValidateErr(formValue, err) e = exception.NewFromError(400, err) response.SendWithException(ctx, e, nil) + ctx.Abort() return } // 执行逻辑 + inputValue := reflect.ValueOf(formValue) if uriCfg.FormDataType.Kind() != reflect.Ptr { - formParam = formParam.Elem() + inputValue = inputValue.Elem() } - resList := uriCfg.ApiLogicFunc.Func.Call([]reflect.Value{uriCfg.ApiStructValue, reflect.ValueOf(ctx), formParam}) + resList := uriCfg.ApiLogicFunc.Func.Call([]reflect.Value{uriCfg.ApiStructValue, reflect.ValueOf(ctx), inputValue}) if resList[1].IsNil() { // 请求成功 response.Success(ctx, resList[0].Interface())