You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
22 lines
661 B
22 lines
661 B
package restful
|
|
|
|
import (
|
|
"net/http"
|
|
)
|
|
|
|
// HttpMiddlewareHandler is a function that takes a http.Handler and returns a http.Handler
|
|
type HttpMiddlewareHandler func(http.Handler) http.Handler
|
|
|
|
// HttpMiddlewareHandlerToFilter converts a HttpMiddlewareHandler to a FilterFunction.
|
|
func HttpMiddlewareHandlerToFilter(middleware HttpMiddlewareHandler) FilterFunction {
|
|
return func(req *Request, resp *Response, chain *FilterChain) {
|
|
next := http.HandlerFunc(func(rw http.ResponseWriter, r *http.Request) {
|
|
req.Request = r
|
|
resp.ResponseWriter = rw
|
|
chain.ProcessFilter(req, resp)
|
|
})
|
|
|
|
middleware(next).ServeHTTP(resp.ResponseWriter, req.Request)
|
|
}
|
|
}
|