Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var CrossDomain = func(ctx *context.Context) {
ctx.Header("Access-Control-Allow-Origin", ctx.Request().Header.Get("Origin"))
ctx.Header("Access-Control-Allow-Headers", "Content-Type,Content-Disposition,X-Request-Id,X-Request-Some")
ctx.Header("Access-Control-Expose-Headers", "Content-Length,Access-Control-Allow-Origin,Access-Control-Allow-Headers,Content-Type,cache-control,Set-Auth,Content-Disposition")
ctx.Header("Access-Control-Allow-Methods", "GET,POST,OPTIONS,PUT,DELETE,PATCH,HEAD,TRACE")
ctx.Header("Access-Control-Allow-Credentials", "true")
ctx.Header("Access-Control-Max-Age", "7200")
if ctx.Request().Method == "OPTIONS" {
ctx.StatusCode(200)
} else {
ctx.Next()
}
}
View Source
var Default = func(ctx *context.Context) { traceId := ctx.GetHeader("X-Request-Id") if traceId == "" { traceId = uuid.New().String() } threadlocal.SetTraceId(traceId) userId := ctx.GetHeader("X-Request-UserId") if userId != "" { threadlocal.SetUserId(userId) } zlog.Info("MainHandlerName:{},router:{}", ctx.GetCurrentRoute().MainHandlerName(), ctx.RouteName()) ctx.Next() }
View Source
var GlobalRecover = func(ctx *context.Context) { defer func() { if err := recover(); err != nil { if ctx.IsStopped() { return } if tx.IsInTX() { tx.NeedRollback() tx.TryCommit() } var stacktrace string for i := 1; ; i++ { _, f, l, got := runtime.Caller(i) if !got { break } stacktrace += fmt.Sprintf("%s:%d\n", f, l) } errMsg := fmt.Sprintf("%s", err) zlog.Info("异常Ctl入口:{}", ctx.HandlerName()) zlog.Error("ErrorInfo:{}", errMsg) if strings.HasPrefix(errMsg, "") { ctx.JSON(response.Error(common_error.SYSTEM_ERROR, errMsg)) } ctx.StatusCode(500) ctx.StopExecution() } }() ctx.Next() if tx.IsInTX() { tx.TryCommit() } }
View Source
var NeedLogin = func(ctx *context.Context) { userId := ctx.GetHeader("X-Request-UserId") if userId == "" { ctx.JSON(response.Error(common_error.NOT_LOGGED_IN, nil)) } else { if userId != "" { threadlocal.SetUserId(userId) ctx.Next() } else { ctx.JSON(response.Error(common_error.NOT_LOGGED_IN, nil)) } } }
View Source
var SaveOp = func(ctx *context.Context) { if lr, ok := rm.IrisRouterMap[ctx.RouteName()]; ok { if lr.SaveOp { req := &rpc_pbs.UserOperationBehaviorReq{ UserId: threadlocal.GetUserId(), ServerName: common_config.GetAppName(), ApiPath: ctx.RouteName(), EventCode: ctx.GetCurrentRoute().MainHandlerName(), EventName: rm.IrisRouterMap[ctx.RouteName()].Description, ExtendData: "{}", Ipv4: common_utils.RemoteIp(ctx.Request()), Ipv6: "", Device: "未知", UserAgent: ctx.Request().UserAgent(), SomeId: ctx.Request().Header.Get("X-Request-Some"), TraceId: threadlocal.GetTraceId(), BehaviorTime: time.Now().Format(common_const.DataFormat), } go universal.SaveUserOperationBehavior(req) } } ctx.Next() }
Functions ¶
This section is empty.
Types ¶
This section is empty.
Click to show internal directories.
Click to hide internal directories.