diff --git a/controllers/api_controller.go b/controllers/api_controller.go index 34097e44e..0da1b7e44 100644 --- a/controllers/api_controller.go +++ b/controllers/api_controller.go @@ -1,6 +1,7 @@ package controllers import ( + "encoding/json" "fmt" "git.rosy.net.cn/baseapi/utils" "git.rosy.net.cn/jx-callback/business/model" @@ -14,6 +15,13 @@ type ApiController struct { web.Controller } +const ( + keyAppID = "app_id" + keyTimestamp = "timestamp" + keyMethod = "method" + keySign = "sign" +) + var ( routerMap map[string]reflect.Value ) @@ -59,14 +67,14 @@ func (c *ApiController) CallOpenAPI() { //timestamp int64 ) //判断必传参数是否传入begin - if appID = c.GetString("app_id"); appID == "" { - requireParams = append(requireParams, "app_id") + if appID = c.GetString(keyAppID); appID == "" { + requireParams = append(requireParams, keyAppID) } - if method = c.GetString("method"); method == "" { - requireParams = append(requireParams, "method") + if method = c.GetString(keyMethod); method == "" { + requireParams = append(requireParams, keyMethod) } - if sign = c.GetString("sign"); sign == "" { - requireParams = append(requireParams, "sign") + if sign = c.GetString(keySign); sign == "" { + requireParams = append(requireParams, keySign) } //if timestamp, err = c.GetInt64("timestamp"); err != nil { // requireParams = append(requireParams, "timestamp") @@ -97,9 +105,9 @@ func (c *ApiController) CallOpenAPI() { //call urls, _ = c.Input() dataMap = utils.URLValues2Map(urls) - delete(dataMap, "app_id") - delete(dataMap, "method") - delete(dataMap, "timestamp") + delete(dataMap, keyAppID) + delete(dataMap, keyMethod) + delete(dataMap, keyTimestamp) parms = []reflect.Value{reflect.ValueOf(dataMap)} if routerMap[method] == reflect.ValueOf(nil) { errCode = model.ErrCodeOpenAPIParamErrMethod @@ -108,7 +116,10 @@ func (c *ApiController) CallOpenAPI() { globals.SugarLogger.Debugf("Begin API CallOpenAPI Method: %s, accessUUID:%s, sign:%s\n", method, accessID, sign) if err == nil { result = routerMap[method].Call(parms) - fmt.Println("routerMap[method].Call(parms)", result) + if !result[1].IsNil() { + err = fmt.Errorf(result[1].String()) + goto end + } goto success } else { callResult.Code = errCode @@ -124,12 +135,16 @@ end: success: { callResult.Code = model.ErrCodeSuccess - callResult.Data = "" + callResult.Data = result[0].String() c.Data["json"] = callResult c.ServeJSON() } } -func (c *ApiController) AddPrint(dataMap map[string]interface{}) (data interface{}, err error) { - return fmt.Println("call AddPrint success ...", dataMap) +func (c *ApiController) AddPrint(dataMap map[string]interface{}) (data string, err error) { + if dataMap[keySign].(string) != "222" { + return "", buildParamErr(keySign) + } + data2, err := json.Marshal(dataMap) + return string(data2), err }