包装handler支持响应后触发相关逻辑
This commit is contained in:
@ -7,7 +7,10 @@
|
||||
// Date : 2024-07-20 22:57
|
||||
package router
|
||||
|
||||
import "reflect"
|
||||
import (
|
||||
"reflect"
|
||||
"sync"
|
||||
)
|
||||
|
||||
const (
|
||||
PrefixFuncName = "RouterPrefix" // 路由前缀函数名称
|
||||
@ -63,3 +66,24 @@ type UriParam struct {
|
||||
const (
|
||||
FieldNameMeta = "Meta" // 元信息字段
|
||||
)
|
||||
|
||||
const (
|
||||
LogicAfterResponseKey = "__logic_after_response__"
|
||||
)
|
||||
|
||||
type LogicAfterResponse struct {
|
||||
SuccessHookFuncList []func() `json:"-"` // 请求最后需要执行的成功hook函数
|
||||
FailureHookFuncList []func() `json:"-"` // 请求最后需要执行的失败hook函数
|
||||
Lock *sync.RWMutex `json:"-"` // 逻辑锁
|
||||
}
|
||||
|
||||
func (logic *LogicAfterResponse) AddSuccessHook(f func()) {
|
||||
logic.Lock.Lock()
|
||||
defer logic.Lock.Unlock()
|
||||
logic.SuccessHookFuncList = append(logic.SuccessHookFuncList, f)
|
||||
}
|
||||
func (logic *LogicAfterResponse) AddFailureHook(f func()) {
|
||||
logic.Lock.Lock()
|
||||
defer logic.Lock.Unlock()
|
||||
logic.FailureHookFuncList = append(logic.FailureHookFuncList, f)
|
||||
}
|
||||
|
Reference in New Issue
Block a user