package webServer import ( "net/http" "common/resultStatus" ) // 处理函数 type HandleFunc func(context *ApiContext) *ResponseObject // ApiHandler // // @description: API处理结构 type ApiHandler struct { // API完整路径名称 apiFullName string // 方法定义 handleFun HandleFunc // 方法参数名称集合 funcParamNames []string } // ApiFullName // // @description: API完整路径名称 // // parameter: // // @receiver this: this // // return: // // @string: func (this *ApiHandler) ApiFullName() string { return this.apiFullName } // HandleFun // // @description: 方法定义 // // parameter: // // @receiver this: this // // return: // // @HandleFunc: 方法 func (this *ApiHandler) HandleFun() HandleFunc { return this.handleFun } // FuncParamNames // // @description: 方法参数名称集合 // // parameter: // // @receiver this: this // // return: // // @[]string: 方法参数名称集合 func (this *ApiHandler) FuncParamNames() []string { return this.funcParamNames } // CheckParam // // @description: 检测参数数量 // // parameter: // // @receiver this: this // @r: // // return: // // @resultstatus.ResultStatus: 状态码数据 func (this *ApiHandler) CheckParam(r *http.Request) resultStatus.ResultStatus { for _, name := range this.funcParamNames { if r.Form[name] == nil || len(r.Form[name]) == 0 { return resultStatus.APIParamError } } return resultStatus.Success } // newApiHandler // // @description: 创建新的请求方法对象 // // parameter: // // @_apiFullName: API完整路径名称 // @_funcDefinition: 方法定义 // @_funcParamNames: 方法参数名称集合 // // return: // // @*ApiHandler: 请求方法对象 func newApiHandler(_apiFullName string, _funcDefinition HandleFunc, _funcParamNames ...string) *ApiHandler { return &ApiHandler{ apiFullName: _apiFullName, handleFun: _funcDefinition, funcParamNames: _funcParamNames, } }