middleware

package
v0.0.0-...-e6ffaab Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 28, 2022 License: MIT Imports: 10 Imported by: 1

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	// RequestID is a middleware that injects a request ID into the context of each
	// request. A request ID is a string of the form "host.example.com/random-0001",
	// where "random" is a base62 random string that uniquely identifies this go
	// process, and where the last number is an atomically incremented request
	// counter.
	RequestID = middleware.RequestID

	// RealIP is a middleware that sets a http.Request's RemoteAddr to the results
	// of parsing either the X-Forwarded-For header or the X-Real-IP header (in that
	// order).
	//
	// This middleware should be inserted fairly early in the middleware stack to
	// ensure that subsequent layers (e.g., request loggers) which examine the
	// RemoteAddr will see the intended value.
	//
	// You should only use this middleware if you can trust the headers passed to
	// you (in particular, the two headers this middleware uses), for example
	// because you have placed a reverse proxy like HAProxy or nginx in front of
	// chi. If your reverse proxies are configured to pass along arbitrary header
	// values from the client, or if you use this middleware without a reverse
	// proxy, malicious clients will be able to make you very sad (or, depending on
	// how you're using RemoteAddr, vulnerable to an attack of some sort).
	RealIP = middleware.RealIP

	// NoCache is a simple piece of middleware that sets a number of HTTP headers to prevent
	// a router (or subrouter) from being cached by an upstream proxy and/or client.
	//
	// As per http://wiki.nginx.org/HttpProxyModule - NoCache sets:
	//      Expires: Thu, 01 Jan 1970 00:00:00 UTC
	//      Cache-Control: no-cache, private, max-age=0
	//      X-Accel-Expires: 0
	//      Pragma: no-cache (for HTTP/1.0 proxies/clients)
	NoCache = middleware.NoCache
)

Functions

func GetLogger

func GetLogger(r *http.Request) log.Logger

GetLogger returns the associated request logger

func Logger

func Logger(next http.Handler) http.Handler

Logger is a middleware that logs the start and end of each request, along with some useful data about what was requested, what the response status was, and how long it took to return.

func Recoverer

func Recoverer(next http.Handler) http.Handler

Recoverer is a middleware that recovers from panics, logs the panic (and a backtrace), and returns a HTTP 500 (Internal Server Error) status if possible. Recoverer prints a request ID if one is provided.

Alternatively, look at https://github.com/pressly/lg middleware pkgs.

func StripSlashes

func StripSlashes(next http.Handler) http.Handler

StripSlashes is a middleware that will match request paths with a trailing slash, strip it from the path and continue routing through the mux, if a route matches, then it will serve the handler.

func Tracer

func Tracer(next http.Handler) http.Handler

Tracer is a middleware that uses openconsensus to trace a http requests

Types

This section is empty.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL