Documentation ¶
Overview ¶
Package middleware provide a app interface to use middleware easily. All middleware is func(w http.ResponseWriter, r *http.Request, next http.HandlerFunc).
Index ¶
- func AppToMiddlewares(app ...HandlerSlice) []func(w http.ResponseWriter, r *http.Request, next http.HandlerFunc)
- func Chain(dst HandlerChain, src ...HandlerSlice)
- func ServeHTTP(app HandlerSlice, w http.ResponseWriter, r *http.Request)
- func ServeMiddleware(app HandlerSlice, w http.ResponseWriter, r *http.Request, ...)
- func Use(app HandlerChain, ...)
- func Wrap(f http.Handler) func(w http.ResponseWriter, r *http.Request, next http.HandlerFunc)
- func WrapFunc(handlerFunc http.HandlerFunc) func(w http.ResponseWriter, r *http.Request, next http.HandlerFunc)
- type App
- func (a *App) Chain(src ...HandlerSlice) *App
- func (a *App) Handle(Handler http.Handler) *App
- func (a *App) HandleFunc(HandlerFunc http.HandlerFunc) *App
- func (a *App) Handlers() []func(w http.ResponseWriter, r *http.Request, next http.HandlerFunc)
- func (a *App) ServeHTTP(w http.ResponseWriter, r *http.Request)
- func (a *App) ServeMiddleware(w http.ResponseWriter, r *http.Request, next http.HandlerFunc)
- func (a *App) SetHandlers(h []func(w http.ResponseWriter, r *http.Request, next http.HandlerFunc))
- func (a *App) Use(...) *App
- func (a *App) UseApp(apps ...*App) *App
- type HandlerChain
- type HandlerSlice
- type Middleware
- type Middlewares
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func AppToMiddlewares ¶
func AppToMiddlewares(app ...HandlerSlice) []func(w http.ResponseWriter, r *http.Request, next http.HandlerFunc)
AppToMiddlewares : Convert App to slice of middleware.
func Chain ¶
func Chain(dst HandlerChain, src ...HandlerSlice)
Chain : Append All middlewares in src to dst. Dst will not change when new middleware appended to src.
func ServeHTTP ¶
func ServeHTTP(app HandlerSlice, w http.ResponseWriter, r *http.Request)
ServeHTTP : Server app as http.
func ServeMiddleware ¶
func ServeMiddleware(app HandlerSlice, w http.ResponseWriter, r *http.Request, next http.HandlerFunc)
ServeMiddleware : Server app as middleware.
func Use ¶
func Use(app HandlerChain, middlewares ...func(w http.ResponseWriter, r *http.Request, next http.HandlerFunc))
Use : Append middlewares tp app.
func Wrap ¶
func Wrap(f http.Handler) func(w http.ResponseWriter, r *http.Request, next http.HandlerFunc)
Wrap : Wrap http.Handler to middleware. Next will be called after handlerFunc finish .
func WrapFunc ¶
func WrapFunc(handlerFunc http.HandlerFunc) func(w http.ResponseWriter, r *http.Request, next http.HandlerFunc)
WrapFunc : Wrap http.HandlerFunc [func(w http.ResponseWriter, r *http.Request)] to middleware. Next will be called after handlerFunc finish .
Types ¶
type App ¶
type App struct {
// contains filtered or unexported fields
}
App : Slice of middlewares with tons of helpful method.
func New ¶
func New(funcs ...func(w http.ResponseWriter, r *http.Request, next http.HandlerFunc)) *App
New : Create new chainable middleware app.
func (*App) Chain ¶
func (a *App) Chain(src ...HandlerSlice) *App
Chain : Append All middlewares in src to app. App will not change when new middleware appended to src.
func (*App) HandleFunc ¶
func (a *App) HandleFunc(HandlerFunc http.HandlerFunc) *App
HandleFunc : Use http HandlerFunc as last middleware.
func (*App) Handlers ¶
func (a *App) Handlers() []func(w http.ResponseWriter, r *http.Request, next http.HandlerFunc)
Handlers : Return all middlewares in app.
func (*App) ServeHTTP ¶
func (a *App) ServeHTTP(w http.ResponseWriter, r *http.Request)
ServeHTTP : Use app as a http handler.
func (*App) ServeMiddleware ¶
func (a *App) ServeMiddleware(w http.ResponseWriter, r *http.Request, next http.HandlerFunc)
ServeMiddleware : Use app as a middleware.
func (*App) SetHandlers ¶
func (a *App) SetHandlers(h []func(w http.ResponseWriter, r *http.Request, next http.HandlerFunc))
SetHandlers : Set app's middlewares.
func (*App) Use ¶
func (a *App) Use(middlewares ...func(w http.ResponseWriter, r *http.Request, next http.HandlerFunc)) *App
Use : Append middlewares to app.
type HandlerChain ¶
type HandlerChain interface { HandlerSlice SetHandlers([]func(w http.ResponseWriter, r *http.Request, next http.HandlerFunc)) }
HandlerChain : interface which contains slice of middlewares which can be updated.
type HandlerSlice ¶
type HandlerSlice interface {
Handlers() []func(w http.ResponseWriter, r *http.Request, next http.HandlerFunc)
}
HandlerSlice : interface which contains slice of middlewares.
type Middleware ¶
type Middleware func(w http.ResponseWriter, r *http.Request, next http.HandlerFunc)
Middleware middleware interface.
type Middlewares ¶
type Middlewares []func(w http.ResponseWriter, r *http.Request, next http.HandlerFunc)
Middlewares middleware list interaface.