keel/net/http/middleware/middleware.go
2021-09-10 12:02:03 +02:00

21 lines
498 B
Go

package middleware
import (
"net/http"
"go.uber.org/zap"
)
// Middleware your way to handle requests
type Middleware func(*zap.Logger, string, http.Handler) http.Handler
func Compose(l *zap.Logger, name string, handler http.Handler, middlewares ...Middleware) http.Handler {
composed := func(l *zap.Logger, name string, next http.Handler) http.Handler {
for _, middleware := range middlewares {
next = middleware(l, name, next)
}
return next
}
return composed(l, name, handler)
}