github.com/gofiber/fiber/v2@v2.47.0/middleware/requestid/requestid.go (about) 1 package requestid 2 3 import ( 4 "github.com/gofiber/fiber/v2" 5 ) 6 7 // New creates a new middleware handler 8 func New(config ...Config) fiber.Handler { 9 // Set default config 10 cfg := configDefault(config...) 11 12 // Return new handler 13 return func(c *fiber.Ctx) error { 14 // Don't execute middleware if Next returns true 15 if cfg.Next != nil && cfg.Next(c) { 16 return c.Next() 17 } 18 // Get id from request, else we generate one 19 rid := c.Get(cfg.Header) 20 if rid == "" { 21 rid = cfg.Generator() 22 } 23 24 // Set new id to response header 25 c.Set(cfg.Header, rid) 26 27 // Add the request ID to locals 28 c.Locals(cfg.ContextKey, rid) 29 30 // Continue stack 31 return c.Next() 32 } 33 }