Documentation
¶
Index ¶
- Constants
- Variables
- func ClientIP(r *http.Request) string
- func RequestIDFromContext(ctx context.Context) string
- func SetTrustedProxies(cidrs []string) error
- type CORSOptions
- type Context
- type HandlerFunc
- type Listener
- type Listeners
- type Middleware
- func AllowContentType(types ...string) Middleware
- func CORS(opts CORSOptions) Middleware
- func CleanPath() Middleware
- func Compress(level int, types ...string) Middleware
- func ContentCharset(charsets ...string) Middleware
- func DefaultCompress() Middleware
- func GetHead() Middleware
- func Logger() Middleware
- func NoCache() Middleware
- func RateLimit(threshold time.Duration, opts ...RateLimitOption) Middleware
- func RealIP() Middleware
- func RequestID() Middleware
- func RequestIDWithGenerator(generate func(*http.Request) string) Middleware
- type RateLimitConfig
- type RateLimitOption
- type RouteGroup
- func (g *RouteGroup) CONNECT(url string, fn HandlerFunc)
- func (g *RouteGroup) DELETE(url string, fn HandlerFunc)
- func (g *RouteGroup) GET(url string, fn HandlerFunc)
- func (g *RouteGroup) HEAD(url string, fn HandlerFunc)
- func (g *RouteGroup) HandleFunc(url string, methods string, fn HandlerFunc)
- func (g *RouteGroup) Mount(prefix string, handler http.Handler)
- func (g *RouteGroup) MountFunc(prefix string, fn func(w http.ResponseWriter, req *http.Request))
- func (g *RouteGroup) OPTIONS(url string, fn HandlerFunc)
- func (g *RouteGroup) PATCH(url string, fn HandlerFunc)
- func (g *RouteGroup) POST(url string, fn HandlerFunc)
- func (g *RouteGroup) PUT(url string, fn HandlerFunc)
- func (g *RouteGroup) TRACE(url string, fn HandlerFunc)
- func (g *RouteGroup) Use(m Middleware)
- type Router
- func (r *Router) CONNECT(url string, fn HandlerFunc)
- func (r *Router) DELETE(url string, fn HandlerFunc)
- func (r *Router) EnableProfiling(profilingServer string)
- func (r *Router) GET(url string, fn HandlerFunc)
- func (r *Router) Group(prefix string) *RouteGroup
- func (r *Router) HEAD(url string, fn HandlerFunc)
- func (r *Router) HandleFunc(url string, methods string, fn HandlerFunc)
- func (r *Router) IsReady() bool
- func (r *Router) ListenAndServe(addr string) error
- func (r *Router) Liveness(path string, fn func(w http.ResponseWriter, req *http.Request))
- func (r *Router) Mount(path string, handler http.Handler)
- func (r *Router) MountFunc(prefix string, fn func(w http.ResponseWriter, req *http.Request))
- func (r *Router) MultiListenAndServe(listeners Listeners) error
- func (r *Router) NotFound(fn HandlerFunc)
- func (r *Router) OPTIONS(url string, fn HandlerFunc)
- func (r *Router) PATCH(url string, fn HandlerFunc)
- func (r *Router) POST(url string, fn HandlerFunc)
- func (r *Router) PUT(url string, fn HandlerFunc)
- func (r *Router) Readiness(path string, fn func(w http.ResponseWriter, req *http.Request))
- func (r *Router) Recovery(fn HandlerFunc)
- func (r *Router) ServeHTTP(w http.ResponseWriter, req *http.Request)
- func (r *Router) SetReady(ready bool)
- func (r *Router) Static(urlPrefix string, rootPath string)
- func (r *Router) TRACE(url string, fn HandlerFunc)
- func (r *Router) Use(m Middleware)
- func (r *Router) UseDefaults()
- func (r *Router) With(middlewares ...Middleware) *middlewareGroup
Constants ¶
View Source
const ( GET = 1 << 0 POST = 1 << 1 PUT = 1 << 2 DELETE = 1 << 3 PATCH = 1 << 4 HEAD = 1 << 5 OPTIONS = 1 << 6 CONNECT = 1 << 7 TRACE = 1 << 8 ANY = 1 << 9 )
Variables ¶
View Source
var ( // ErrInvalidListenAddress indicates that a listen address is malformed // or cannot be split into host and port. ErrInvalidListenAddress = errors.New("router: invalid listen address") // ErrInvalidListenPort indicates that the port part of a listen address // is not a valid numeric port. ErrInvalidListenPort = errors.New("router: invalid listen port") // ErrListenFailed indicates that the router failed to bind a TCP listener. ErrListenFailed = errors.New("router: listen failed") // ErrServeFailed indicates that http.Server.Serve returned an unexpected error. ErrServeFailed = errors.New("router: serve failed") // ErrHijackerNotSupported indicates that the wrapped ResponseWriter // does not implement http.Hijacker. ErrHijackerNotSupported = errors.New("router: hijacker not supported") // ErrInvalidTrustedProxyCIDR indicates that a trusted proxy CIDR is invalid. ErrInvalidTrustedProxyCIDR = errors.New("router: invalid trusted proxy CIDR") )
Functions ¶
func RequestIDFromContext ¶
func SetTrustedProxies ¶
Types ¶
type CORSOptions ¶
type HandlerFunc ¶
type HandlerFunc func(http.ResponseWriter, *http.Request, *Context)
type Middleware ¶
type Middleware func(HandlerFunc) HandlerFunc
func AllowContentType ¶
func AllowContentType(types ...string) Middleware
func CORS ¶
func CORS(opts CORSOptions) Middleware
func CleanPath ¶
func CleanPath() Middleware
CleanPath normalizes r.URL.Path after the route has already matched. If you need cleaning before route matching, do it in Router.ServeHTTP before lookup.
func Compress ¶
func Compress(level int, types ...string) Middleware
func ContentCharset ¶
func ContentCharset(charsets ...string) Middleware
func DefaultCompress ¶
func DefaultCompress() Middleware
func GetHead ¶
func GetHead() Middleware
func Logger ¶
func Logger() Middleware
func NoCache ¶
func NoCache() Middleware
func RateLimit ¶
func RateLimit(threshold time.Duration, opts ...RateLimitOption) Middleware
func RealIP ¶
func RealIP() Middleware
func RequestID ¶
func RequestID() Middleware
func RequestIDWithGenerator ¶
func RequestIDWithGenerator(generate func(*http.Request) string) Middleware
type RateLimitConfig ¶
type RateLimitOption ¶
type RateLimitOption func(*RateLimitConfig)
type RouteGroup ¶
type RouteGroup struct {
// contains filtered or unexported fields
}
func (*RouteGroup) CONNECT ¶
func (g *RouteGroup) CONNECT(url string, fn HandlerFunc)
func (*RouteGroup) DELETE ¶
func (g *RouteGroup) DELETE(url string, fn HandlerFunc)
func (*RouteGroup) GET ¶
func (g *RouteGroup) GET(url string, fn HandlerFunc)
func (*RouteGroup) HEAD ¶
func (g *RouteGroup) HEAD(url string, fn HandlerFunc)
func (*RouteGroup) HandleFunc ¶
func (g *RouteGroup) HandleFunc(url string, methods string, fn HandlerFunc)
func (*RouteGroup) MountFunc ¶
func (g *RouteGroup) MountFunc(prefix string, fn func(w http.ResponseWriter, req *http.Request))
func (*RouteGroup) OPTIONS ¶
func (g *RouteGroup) OPTIONS(url string, fn HandlerFunc)
func (*RouteGroup) PATCH ¶
func (g *RouteGroup) PATCH(url string, fn HandlerFunc)
func (*RouteGroup) POST ¶
func (g *RouteGroup) POST(url string, fn HandlerFunc)
func (*RouteGroup) PUT ¶
func (g *RouteGroup) PUT(url string, fn HandlerFunc)
func (*RouteGroup) TRACE ¶
func (g *RouteGroup) TRACE(url string, fn HandlerFunc)
func (*RouteGroup) Use ¶
func (g *RouteGroup) Use(m Middleware)
type Router ¶
type Router struct {
// contains filtered or unexported fields
}
func (*Router) CONNECT ¶
func (r *Router) CONNECT(url string, fn HandlerFunc)
func (*Router) DELETE ¶
func (r *Router) DELETE(url string, fn HandlerFunc)
func (*Router) EnableProfiling ¶
func (*Router) GET ¶
func (r *Router) GET(url string, fn HandlerFunc)
func (*Router) Group ¶
func (r *Router) Group(prefix string) *RouteGroup
func (*Router) HEAD ¶
func (r *Router) HEAD(url string, fn HandlerFunc)
func (*Router) HandleFunc ¶
func (r *Router) HandleFunc(url string, methods string, fn HandlerFunc)
func (*Router) ListenAndServe ¶
func (*Router) MultiListenAndServe ¶
func (*Router) NotFound ¶
func (r *Router) NotFound(fn HandlerFunc)
func (*Router) OPTIONS ¶
func (r *Router) OPTIONS(url string, fn HandlerFunc)
func (*Router) PATCH ¶
func (r *Router) PATCH(url string, fn HandlerFunc)
func (*Router) POST ¶
func (r *Router) POST(url string, fn HandlerFunc)
func (*Router) PUT ¶
func (r *Router) PUT(url string, fn HandlerFunc)
func (*Router) Recovery ¶
func (r *Router) Recovery(fn HandlerFunc)
func (*Router) TRACE ¶
func (r *Router) TRACE(url string, fn HandlerFunc)
func (*Router) Use ¶
func (r *Router) Use(m Middleware)
func (*Router) UseDefaults ¶
func (r *Router) UseDefaults()
func (*Router) With ¶
func (r *Router) With(middlewares ...Middleware) *middlewareGroup
Click to show internal directories.
Click to hide internal directories.