package webServer import ( "fmt" "net/http" ) var ( // 处理方法集合 // Key:API名 handlerData = make(map[string]*ApiHandler) // 文档方法 remarkFunc func(w http.ResponseWriter, r *http.Request) ) // RegisterRemarkFunc // @description: 注册文档api方法 // parameter: // @_remarkFunc: _remarkFunc // return: func RegisterRemarkFunc(_remarkFunc func(w http.ResponseWriter, r *http.Request)) { remarkFunc = _remarkFunc } // RegisterHandleFunc // @description: 注册处理方法 // parameter: // @apiName: API名称 // @callback: 回调方法 // @paramNames: 参数名称集合 // return: func RegisterHandleFunc(apiName string, callback HandleFunc, paramNames ...string) { apiFullName := fmt.Sprintf("/API/%s", apiName) if _, exist := handlerData[apiFullName]; exist { panic(fmt.Errorf("重复注册处理函数:%s", apiFullName)) } handlerData[apiFullName] = newApiHandler(apiFullName, callback, paramNames...) } // GetHandleFunc // @description: 获取请求方法 // parameter: // @apiFullName: 方法名称 // return: // @*ApiHandler: 请求方法 // @bool: 是否存在 func GetHandleFunc(apiFullName string) (*ApiHandler, bool) { if requestFuncObj, exists := handlerData[apiFullName]; exists { return requestFuncObj, exists } return nil, false }