Handlers
Package gorilla/handlers is a collection of useful middleware for Go HTTP services & web applications 🛃
Package handlers is a collection of handlers (aka "HTTP middleware") for use with Go's `net/http` package (or any framework supporting `http.Handler`), including: The project is written primarily in Go, distributed under the BSD 3-Clause "New" or "Revised" License license, first published in 2013. It has gained significant community traction with 1,741 stars and 279 forks on GitHub. Key topics include: go, golang, gorilla, gorilla-web-toolkit, handler.
gorilla/handlers
Package handlers is a collection of handlers (aka "HTTP middleware") for use
with Go's net/http package (or any framework supporting http.Handler), including:
- LoggingHandler for logging HTTP requests in the Apache Common Log
Format. - CombinedLoggingHandler for logging HTTP requests in the Apache Combined Log
Format commonly used by
both Apache and nginx. - CompressHandler for gzipping responses.
- ContentTypeHandler for validating requests against a list of accepted
content types. - MethodHandler for matching HTTP methods against handlers in a
map[string]http.Handler - ProxyHeaders for populating
r.RemoteAddrandr.URL.Schemebased on the
X-Forwarded-For,X-Real-IP,X-Forwarded-Protoand RFC7239Forwarded
headers when running a Go server behind a HTTP reverse proxy. - CanonicalHost for re-directing to the preferred host when handling multiple
domains (i.e. multiple CNAME aliases). - RecoveryHandler for recovering from unexpected panics.
Other handlers are documented on the Gorilla
website.
Example
A simple example using handlers.LoggingHandler and handlers.CompressHandler:
goimport ( "net/http" "github.com/gorilla/handlers" ) func main() { r := http.NewServeMux() // Only log requests to our admin dashboard to stdout r.Handle("/admin", handlers.LoggingHandler(os.Stdout, http.HandlerFunc(ShowAdminDashboard))) r.HandleFunc("/", ShowIndex) // Wrap our server with our gzip handler to gzip compress all responses. http.ListenAndServe(":8000", handlers.CompressHandler(r)) }
License
BSD licensed. See the included LICENSE file for details.
Contributors
Showing top 12 contributors by commit count.
