middleware

package
v0.1.0 Latest Latest
Warning

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

Go to latest
Published: Oct 17, 2017 License: MIT Imports: 17 Imported by: 0

Documentation

Index

Constants

View Source
const DefaultBufferSize = 8192

Variables

View Source
var Inflate = MiddlewareFunc(func(next http.Handler) http.Handler {
	return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
		if len(r.Header["Content-Encoding"]) == 0 {
			next.ServeHTTP(w, r)
			return
		}
		switch encoding := r.Header.Get("Content-Encoding"); encoding {
		case "gzip":
			if gzr, err := gzip.NewReader(r.Body); err == nil {
				r.Body = ioutil.NopCloser(gzr)
			} else {
				http.Error(w, err.Error(), http.StatusBadRequest)
				return
			}
		case "deflate":
			r.Body = flate.NewReader(r.Body)
		case "identity":

		default:
			code := http.StatusUnsupportedMediaType
			msg := fmt.Sprintf("Unsupported content encoding %s", encoding)
			http.Error(w, msg, code)
			return
		}
		r.Header.Set("Content-Encoding", "identity")
		next.ServeHTTP(w, r)
	})
})
View Source
var NopHandler = http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {})

Functions

func Compose

func Compose(mws ...Middleware) http.Handler

func Wrap added in v0.0.3

func Wrap(h http.Handler, mws ...Middleware) http.Handler

Types

type Delay added in v0.0.2

type Delay time.Duration

func (Delay) Wrap added in v0.0.2

func (d Delay) Wrap(next http.Handler) http.Handler

type Middleware

type Middleware interface {
	Wrap(http.Handler) http.Handler
}

func Context

func Context(ctx context.Context) Middleware

func Negroni

func Negroni(n NegroniHandler) Middleware

func OnTick

func OnTick(mw Middleware, d time.Duration) Middleware

func RequireMethods

func RequireMethods(methods ...string) Middleware

func RequireMimeTypes

func RequireMimeTypes(mimes ...string) Middleware

func Timeout added in v0.0.2

func Timeout(d time.Duration, timeoutHandler http.Handler) Middleware

type MiddlewareFunc

type MiddlewareFunc func(http.Handler) http.Handler

func (MiddlewareFunc) Wrap

func (mf MiddlewareFunc) Wrap(next http.Handler) http.Handler

type MiddlewareProvider

type MiddlewareProvider interface {
	Middleware() Middleware
}

type Middlewares

type Middlewares []Middleware

func (Middlewares) Wrap

func (ms Middlewares) Wrap(next http.Handler) http.Handler

type NegroniHandler

type NegroniHandler interface {
	ServeHTTP(http.ResponseWriter, *http.Request, http.HandlerFunc)
}

type Recovery

type Recovery struct {
	Logger     *log.Logger
	PrintStack bool
	StackAll   bool
	StackSize  int
}

func NewRecovery

func NewRecovery() *Recovery

func (*Recovery) Wrap

func (rec *Recovery) Wrap(next http.Handler) http.Handler

Jump to

Keyboard shortcuts

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