feat: 支持设置请求超时中间件
This commit is contained in:
@@ -203,6 +203,8 @@ func (s *server) Group(routerPrefix string, middlewareList []gin.HandlerFunc, co
|
||||
} else {
|
||||
apiMiddlewareList = append(apiMiddlewareList, runtime.FuncForPC(reflect.ValueOf(s.RequestHandler).Pointer()).Name())
|
||||
}
|
||||
// 设置 超时 函数描述
|
||||
apiMiddlewareList = append(apiMiddlewareList, runtime.FuncForPC(reflect.ValueOf(middleware.Timeout).Pointer()).Name())
|
||||
// 设置 logic 函数描述
|
||||
apiMiddlewareList = append(apiMiddlewareList, runtime.FuncForPC(itemUriCfg.ApiLogicFunc.Func.Pointer()).Name())
|
||||
|
||||
@@ -231,21 +233,25 @@ func (s *server) Group(routerPrefix string, middlewareList []gin.HandlerFunc, co
|
||||
|
||||
// registerRouter 注册路由
|
||||
func (s *server) registerRouter(routerGroup *gin.RouterGroup, method string, itemUriCfg UriConfig, handleFunc gin.HandlerFunc) {
|
||||
funcList := []gin.HandlerFunc{
|
||||
middleware.Timeout(itemUriCfg.MaxExecTime), // 超时处理
|
||||
handleFunc,
|
||||
}
|
||||
switch method {
|
||||
case http.MethodGet:
|
||||
routerGroup.GET(itemUriCfg.Path, handleFunc)
|
||||
case http.MethodHead:
|
||||
routerGroup.HEAD(itemUriCfg.Path, handleFunc)
|
||||
routerGroup.HEAD(itemUriCfg.Path, funcList...)
|
||||
case http.MethodPost:
|
||||
routerGroup.POST(itemUriCfg.Path, handleFunc)
|
||||
routerGroup.POST(itemUriCfg.Path, funcList...)
|
||||
case http.MethodPut:
|
||||
routerGroup.PUT(itemUriCfg.Path, handleFunc)
|
||||
routerGroup.PUT(itemUriCfg.Path, funcList...)
|
||||
case http.MethodPatch:
|
||||
routerGroup.PATCH(itemUriCfg.Path, handleFunc)
|
||||
routerGroup.PATCH(itemUriCfg.Path, funcList...)
|
||||
case http.MethodDelete:
|
||||
routerGroup.DELETE(itemUriCfg.Path, handleFunc)
|
||||
routerGroup.DELETE(itemUriCfg.Path, funcList...)
|
||||
case http.MethodOptions:
|
||||
routerGroup.OPTIONS(itemUriCfg.Path, handleFunc)
|
||||
routerGroup.OPTIONS(itemUriCfg.Path, funcList...)
|
||||
case http.MethodTrace:
|
||||
panic(`method Trace is not supported`)
|
||||
default:
|
||||
|
||||
Reference in New Issue
Block a user