升级请求日志记录 + 升级 request wrapperHandle + 拆分after hook
This commit is contained in:
38
middleware/hook_after_response.go
Normal file
38
middleware/hook_after_response.go
Normal file
@ -0,0 +1,38 @@
|
||||
// Package middleware ...
|
||||
//
|
||||
// Description : middleware ...
|
||||
//
|
||||
// Author : go_developer@163.com<白茶清欢>
|
||||
//
|
||||
// Date : 2024-07-26 11:54
|
||||
package middleware
|
||||
|
||||
import (
|
||||
"git.zhangdeman.cn/zhangdeman/gin/define"
|
||||
"git.zhangdeman.cn/zhangdeman/gin/request"
|
||||
"github.com/gin-gonic/gin"
|
||||
)
|
||||
|
||||
type HookFunc func(ctx *gin.Context, requestData []byte, responseData map[string]interface{}, cost int64)
|
||||
|
||||
// HookAfterResponseMiddleware 请求最终处理完成之后执行的中间件
|
||||
//
|
||||
// Author : go_developer@163.com<白茶清欢>
|
||||
//
|
||||
// Date : 11:55 2024/7/26
|
||||
func HookAfterResponseMiddleware(ctx *gin.Context, hookFunc HookFunc) gin.HandlerFunc {
|
||||
handleConfig := define.GetHttpHandleConfig()
|
||||
return func(ctx *gin.Context) {
|
||||
ctx.Next()
|
||||
if nil == hookFunc {
|
||||
return
|
||||
}
|
||||
// hook 不为nil, 自动触发
|
||||
hookFunc(
|
||||
ctx,
|
||||
[]byte(ctx.GetString(handleConfig.RecordRequestDataField)),
|
||||
ctx.GetStringMap(handleConfig.RecordResponseDataField),
|
||||
request.WrapperHandle.GetCtxIntData(ctx, handleConfig.StartRequestTimeField, 0)-request.WrapperHandle.GetCtxIntData(ctx, handleConfig.StartRequestTimeField, 0),
|
||||
)
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user