Documentation ¶
Index ¶
- func CleanPath(p string) string
- func JSON(w http.ResponseWriter, value interface{}) error
- func Version() string
- type CompatGroup
- func (g CompatGroup) DELETE(path string, handler http.HandlerFunc)
- func (g CompatGroup) GET(path string, handler http.HandlerFunc)
- func (g CompatGroup) HEAD(path string, handler http.HandlerFunc)
- func (g CompatGroup) Handle(method string, path string, handler http.HandlerFunc)
- func (g CompatGroup) NewGroup(path string, opts ...GroupOption) *CompatGroup
- func (g CompatGroup) OPTIONS(path string, handler http.HandlerFunc)
- func (g CompatGroup) PATCH(path string, handler http.HandlerFunc)
- func (g CompatGroup) POST(path string, handler http.HandlerFunc)
- func (g CompatGroup) PUT(path string, handler http.HandlerFunc)
- func (g CompatGroup) WithGroup(path string, fn func(g *CompatGroup))
- func (g CompatGroup) WithMiddleware(middleware MiddlewareFunc) *CompatGroup
- type CompatRouter
- type Group
- func (g *Group) Compat() *CompatGroup
- func (g *Group) DELETE(path string, handler HandlerFunc)
- func (g *Group) GET(path string, handler HandlerFunc)
- func (g *Group) HEAD(path string, handler HandlerFunc)
- func (g *Group) Handle(meth string, path string, handler HandlerFunc)
- func (g *Group) NewGroup(path string, opts ...GroupOption) *Group
- func (g *Group) OPTIONS(path string, handler HandlerFunc)
- func (g *Group) PATCH(path string, handler HandlerFunc)
- func (g *Group) POST(path string, handler HandlerFunc)
- func (g *Group) PUT(path string, handler HandlerFunc)
- func (g *Group) Use(middlewares ...MiddlewareFunc) *Group
- func (g *Group) Verbose() *VerboseGroup
- func (g *Group) WithGroup(path string, fn func(g *Group))
- func (g *Group) WithMiddleware(middleware MiddlewareFunc) *Group
- type GroupOption
- type H
- type HandlerFunc
- type MiddlewareFunc
- type Option
- type Param
- type Params
- func (ps Params) ByName(name string) string
- func (ps Params) Get(name string) (string, bool)
- func (ps Params) Int(name string) (int, error)
- func (ps Params) Int32(name string) (int32, error)
- func (ps Params) Int64(name string) (int64, error)
- func (ps Params) IsZero() bool
- func (ps Params) Map() map[string]string
- func (ps Params) Route() string
- func (ps Params) Slice() []Param
- func (ps Params) Uint32(name string) (uint32, error)
- func (ps Params) Uint64(name string) (uint64, error)
- type Request
- type Router
- type VerboseGroup
- func (g VerboseGroup) DELETE(path string, handler VerboseHandlerFunc)
- func (g VerboseGroup) GET(path string, handler VerboseHandlerFunc)
- func (g VerboseGroup) HEAD(path string, handler VerboseHandlerFunc)
- func (g VerboseGroup) Handle(method string, path string, handler VerboseHandlerFunc)
- func (g VerboseGroup) NewGroup(path string, opts ...GroupOption) *VerboseGroup
- func (g VerboseGroup) OPTIONS(path string, handler VerboseHandlerFunc)
- func (g VerboseGroup) PATCH(path string, handler VerboseHandlerFunc)
- func (g VerboseGroup) POST(path string, handler VerboseHandlerFunc)
- func (g VerboseGroup) PUT(path string, handler VerboseHandlerFunc)
- func (g VerboseGroup) WithGroup(path string, fn func(g *VerboseGroup))
- func (g VerboseGroup) WithMiddleware(middleware MiddlewareFunc) *VerboseGroup
- type VerboseHandlerFunc
- type VerboseRouter
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func CleanPath ¶
CleanPath is the URL version of path.Clean, it returns a canonical URL path for p, eliminating . and .. elements.
The following rules are applied iteratively until no further processing can be done:
- Replace multiple slashes with a single slash.
- Eliminate each . path name element (the current directory).
- Eliminate each inner .. path name element (the parent directory) along with the non-.. element that precedes it.
- Eliminate .. elements that begin a rooted path: that is, replace "/.." by "/" at the beginning of a path.
If the result of this process is an empty string, "/" is returned
func JSON ¶
func JSON(w http.ResponseWriter, value interface{}) error
JSON marshals the value as JSON and writes it to the response writer.
Don't hesitate to copy-paste this function to your project and customize it as necessary.
Types ¶
type CompatGroup ¶
type CompatGroup struct {
// contains filtered or unexported fields
}
CompatGroup is like Group, but it works with http.HandlerFunc instead of bunrouter handler.
func (CompatGroup) DELETE ¶
func (g CompatGroup) DELETE(path string, handler http.HandlerFunc)
func (CompatGroup) GET ¶
func (g CompatGroup) GET(path string, handler http.HandlerFunc)
func (CompatGroup) HEAD ¶
func (g CompatGroup) HEAD(path string, handler http.HandlerFunc)
func (CompatGroup) Handle ¶
func (g CompatGroup) Handle(method string, path string, handler http.HandlerFunc)
func (CompatGroup) NewGroup ¶
func (g CompatGroup) NewGroup(path string, opts ...GroupOption) *CompatGroup
func (CompatGroup) OPTIONS ¶
func (g CompatGroup) OPTIONS(path string, handler http.HandlerFunc)
func (CompatGroup) PATCH ¶
func (g CompatGroup) PATCH(path string, handler http.HandlerFunc)
func (CompatGroup) POST ¶
func (g CompatGroup) POST(path string, handler http.HandlerFunc)
func (CompatGroup) PUT ¶
func (g CompatGroup) PUT(path string, handler http.HandlerFunc)
func (CompatGroup) WithGroup ¶
func (g CompatGroup) WithGroup(path string, fn func(g *CompatGroup))
func (CompatGroup) WithMiddleware ¶
func (g CompatGroup) WithMiddleware(middleware MiddlewareFunc) *CompatGroup
type CompatRouter ¶
type CompatRouter struct { *Router *CompatGroup }
type Group ¶
type Group struct {
// contains filtered or unexported fields
}
Group is a group of routes and middlewares.
func (*Group) Compat ¶
func (g *Group) Compat() *CompatGroup
func (*Group) DELETE ¶
func (g *Group) DELETE(path string, handler HandlerFunc)
Syntactic sugar for Handle("DELETE", path, handler)
func (*Group) GET ¶
func (g *Group) GET(path string, handler HandlerFunc)
Syntactic sugar for Handle("GET", path, handler)
func (*Group) HEAD ¶
func (g *Group) HEAD(path string, handler HandlerFunc)
Syntactic sugar for Handle("HEAD", path, handler)
func (*Group) NewGroup ¶
func (g *Group) NewGroup(path string, opts ...GroupOption) *Group
NewGroup adds a sub-group to this group.
func (*Group) OPTIONS ¶
func (g *Group) OPTIONS(path string, handler HandlerFunc)
Syntactic sugar for Handle("OPTIONS", path, handler)
func (*Group) PATCH ¶
func (g *Group) PATCH(path string, handler HandlerFunc)
Syntactic sugar for Handle("PATCH", path, handler)
func (*Group) POST ¶
func (g *Group) POST(path string, handler HandlerFunc)
Syntactic sugar for Handle("POST", path, handler)
func (*Group) PUT ¶
func (g *Group) PUT(path string, handler HandlerFunc)
Syntactic sugar for Handle("PUT", path, handler)
func (*Group) Use ¶ added in v1.0.11
func (g *Group) Use(middlewares ...MiddlewareFunc) *Group
func (*Group) Verbose ¶
func (g *Group) Verbose() *VerboseGroup
func (*Group) WithMiddleware ¶
func (g *Group) WithMiddleware(middleware MiddlewareFunc) *Group
type GroupOption ¶
type GroupOption interface { Option // contains filtered or unexported methods }
func Use ¶ added in v1.0.11
func Use(fns ...MiddlewareFunc) GroupOption
Use is an alias for WithMiddleware.
func WithGroup ¶
func WithGroup(fn func(g *Group)) GroupOption
WithGroup calls the fn with the current Group.
func WithHandler ¶
func WithHandler(fn HandlerFunc) GroupOption
WithHandler is like WithMiddleware, but the handler can't modify the request.
func WithMiddleware ¶
func WithMiddleware(fns ...MiddlewareFunc) GroupOption
WithMiddleware adds a middleware handler to the Group's middleware stack.
type HandlerFunc ¶
type HandlerFunc func(w http.ResponseWriter, req Request) error
func HTTPHandler ¶
func HTTPHandler(handler http.Handler) HandlerFunc
HTTPHandler converts http.Handler to bunrouter.HandlerFunc.
func HTTPHandlerFunc ¶
func HTTPHandlerFunc(handler http.HandlerFunc) HandlerFunc
HTTPHandlerFunc converts http.HandlerFunc to bunrouter.HandlerFunc.
func (HandlerFunc) ServeHTTP ¶ added in v1.0.5
func (h HandlerFunc) ServeHTTP(w http.ResponseWriter, req *http.Request)
type MiddlewareFunc ¶
type MiddlewareFunc func(next HandlerFunc) HandlerFunc
type Option ¶
type Option interface {
// contains filtered or unexported methods
}
func WithMethodNotAllowedHandler ¶
func WithMethodNotAllowedHandler(handler HandlerFunc) Option
MethodNotAllowedHandler is called when a route matches, but that route does not have a handler for the requested method. The default handler just writes the status code http.StatusMethodNotAllowed.
func WithNotFoundHandler ¶
func WithNotFoundHandler(handler HandlerFunc) Option
WithNotFoundHandler is called when there is no a matching pattern. The default NotFoundHandler is http.NotFound.
type Params ¶
type Params struct {
// contains filtered or unexported fields
}
func ParamsFromContext ¶
type Request ¶
func NewRequest ¶
type Router ¶
type Router struct { Group // contains filtered or unexported fields }
func (*Router) Compat ¶
func (r *Router) Compat() *CompatRouter
func (*Router) ServeHTTP ¶
func (r *Router) ServeHTTP(w http.ResponseWriter, req *http.Request)
ServeHTTP implements http.Handler interface.
func (*Router) ServeHTTPError ¶ added in v1.0.9
ServeHTTPError is like ServeHTTP, but it also returns the error returned by the matched route handler.
func (*Router) Verbose ¶
func (r *Router) Verbose() *VerboseRouter
type VerboseGroup ¶
type VerboseGroup struct {
// contains filtered or unexported fields
}
VerboseGroup is like Group, but it works with VerboseHandlerFunc instead of bunrouter handler.
func (VerboseGroup) DELETE ¶
func (g VerboseGroup) DELETE(path string, handler VerboseHandlerFunc)
func (VerboseGroup) GET ¶
func (g VerboseGroup) GET(path string, handler VerboseHandlerFunc)
func (VerboseGroup) HEAD ¶
func (g VerboseGroup) HEAD(path string, handler VerboseHandlerFunc)
func (VerboseGroup) Handle ¶
func (g VerboseGroup) Handle(method string, path string, handler VerboseHandlerFunc)
func (VerboseGroup) NewGroup ¶
func (g VerboseGroup) NewGroup(path string, opts ...GroupOption) *VerboseGroup
func (VerboseGroup) OPTIONS ¶
func (g VerboseGroup) OPTIONS(path string, handler VerboseHandlerFunc)
func (VerboseGroup) PATCH ¶
func (g VerboseGroup) PATCH(path string, handler VerboseHandlerFunc)
func (VerboseGroup) POST ¶
func (g VerboseGroup) POST(path string, handler VerboseHandlerFunc)
func (VerboseGroup) PUT ¶
func (g VerboseGroup) PUT(path string, handler VerboseHandlerFunc)
func (VerboseGroup) WithGroup ¶
func (g VerboseGroup) WithGroup(path string, fn func(g *VerboseGroup))
func (VerboseGroup) WithMiddleware ¶
func (g VerboseGroup) WithMiddleware(middleware MiddlewareFunc) *VerboseGroup
type VerboseHandlerFunc ¶
type VerboseHandlerFunc func(w http.ResponseWriter, req *http.Request, ps Params)
type VerboseRouter ¶
type VerboseRouter struct { *Router *VerboseGroup }
Source Files ¶
Directories ¶
Path | Synopsis |
---|---|
example
|
|
all-in-one
Module
|
|
basic
Module
|
|
basic-compat
Module
|
|
basic-verbose
Module
|
|
error-handling
Module
|
|
file-server
Module
|
|
opentelemetry
Module
|
|
panic-recover
Module
|
|
rate-limiting
Module
|
|
extra
|
|
basicauth
Module
|
|
bunroutergzip
Module
|
|
bunrouterotel
Module
|
|
reqlog
Module
|