Use appends a middleware and rebuilds the router so every existing route is re-wrapped from its original handlers — preventing double-wrapping.
(middleware Middleware)
| 402 | // Use appends a middleware and rebuilds the router so every existing route |
| 403 | // is re-wrapped from its original handlers — preventing double-wrapping. |
| 404 | func (server *Server) Use(middleware Middleware) { |
| 405 | server.mutex.Lock() |
| 406 | defer server.mutex.Unlock() |
| 407 | |
| 408 | server.middlewares = append(server.middlewares, middleware) |
| 409 | |
| 410 | server.router = newRouter() |
| 411 | for _, route := range server.routes { |
| 412 | server.router.Insert(route.Method, route.Path, server.wrapHandlers(route.Handlers)) |
| 413 | } |
| 414 | } |
| 415 | |
| 416 | // wrapHandlers applies all registered middleware to a handler slice. |
| 417 | // It always operates on the original handlers, so calling it multiple |