包装handler支持响应后触发相关逻辑

This commit is contained in:
2025-02-28 16:48:22 +08:00
parent 3432087fbd
commit b95d464c89
2 changed files with 53 additions and 10 deletions

View File

@ -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)
}