38 lines
728 B
Go
38 lines
728 B
Go
|
|
package server_http
|
|||
|
|
|
|||
|
|
import (
|
|||
|
|
"fmt"
|
|||
|
|
|
|||
|
|
. "common/model"
|
|||
|
|
)
|
|||
|
|
|
|||
|
|
type Handler func(*Context) *ServerResponseObject
|
|||
|
|
|
|||
|
|
var (
|
|||
|
|
// 处理函数集合
|
|||
|
|
handlerMap map[string]Handler
|
|||
|
|
)
|
|||
|
|
|
|||
|
|
func init() {
|
|||
|
|
handlerMap = make(map[string]Handler, 8)
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// RegisterHandler 详细的注册一个WebAPI处理函数
|
|||
|
|
// pattern:路由地址
|
|||
|
|
// handler:处理函数
|
|||
|
|
// paramInfo:参数列表
|
|||
|
|
func RegisterHandler(pattern string, handler Handler) {
|
|||
|
|
if _, exist := handlerMap[pattern]; exist {
|
|||
|
|
panic(fmt.Errorf("存在重复的webapi注册:%s", pattern))
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 添加处理对象
|
|||
|
|
handlerMap[pattern] = handler
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 获取处理函数
|
|||
|
|
func getHandler(pattern string) (handler Handler, exists bool) {
|
|||
|
|
handler, exists = handlerMap[pattern]
|
|||
|
|
return
|
|||
|
|
}
|