package middleware import "net/http" type Middleware func(http.Handler) http.Handler // CreateStack creates a stack of middleware handlers func CreateStack(middlewares ...Middleware) Middleware { return func(nextMiddleware http.Handler) http.Handler { for i := len(middlewares) - 1; i >= 0; i-- { currentMiddleware := middlewares[i] nextMiddleware = currentMiddleware(nextMiddleware) } return nextMiddleware } }