MCPcopy Index your code
hub / github.com/labstack/echo / ToMiddleware

Method ToMiddleware

middleware/request_id.go:42–73  ·  view source on GitHub ↗

ToMiddleware converts RequestIDConfig to middleware or returns an error for invalid configuration

()

Source from the content-addressed store, hash-verified

40
41// ToMiddleware converts RequestIDConfig to middleware or returns an error for invalid configuration
42func (config RequestIDConfig) ToMiddleware() (echo.MiddlewareFunc, error) {
43 if config.Skipper == nil {
44 config.Skipper = DefaultSkipper
45 }
46 if config.Generator == nil {
47 config.Generator = createRandomStringGenerator(32)
48 }
49 if config.TargetHeader == "" {
50 config.TargetHeader = echo.HeaderXRequestID
51 }
52
53 return func(next echo.HandlerFunc) echo.HandlerFunc {
54 return func(c *echo.Context) error {
55 if config.Skipper(c) {
56 return next(c)
57 }
58
59 req := c.Request()
60 res := c.Response()
61 rid := req.Header.Get(config.TargetHeader)
62 if rid == "" {
63 rid = config.Generator()
64 }
65 res.Header().Set(config.TargetHeader, rid)
66 if config.RequestIDHandler != nil {
67 config.RequestIDHandler(c, rid)
68 }
69
70 return next(c)
71 }
72 }, nil
73}

Callers

nothing calls this directly

Calls 6

RequestMethod · 0.80
ResponseMethod · 0.80
SetMethod · 0.80
GetMethod · 0.45
HeaderMethod · 0.45

Tested by

no test coverage detected