Documentation
¶
Overview ¶
Package denco provides fast URL router.
Index ¶
- Constants
- Variables
- func NextSeparator(path string, start int) int
- type Handler
- type HandlerFunc
- type Mux
- func (m *Mux) Build(handlers []Handler) (http.Handler, error)
- func (m *Mux) GET(path string, handler HandlerFunc) Handler
- func (m *Mux) HEAD(path string, handler HandlerFunc) Handler
- func (m *Mux) Handler(method, path string, handler HandlerFunc) Handler
- func (m *Mux) POST(path string, handler HandlerFunc) Handler
- func (m *Mux) PUT(path string, handler HandlerFunc) Handler
- type Param
- type Params
- type Record
- type Router
Constants ¶
const ( // ParamCharacter is a special character for path parameter. ParamCharacter = ':' // WildcardCharacter is a special character for wildcard path parameter. WildcardCharacter = '*' // TerminationCharacter is a special character for end of path. TerminationCharacter = '#' // SeparatorCharacter separates path segments. SeparatorCharacter = '/' // PathParamCharacter indicates a RESTCONF path param PathParamCharacter = '=' // MaxSize is max size of records and internal slice. MaxSize = (1 << 22) - 1 )
Variables ¶
var NotFound = func(w http.ResponseWriter, r *http.Request, _ Params) { http.NotFound(w, r) }
NotFound replies to the request with an HTTP 404 not found error. NotFound is called when unknown HTTP method or a handler not found. If you want to use the your own NotFound handler, please overwrite this variable.
Functions ¶
func NextSeparator ¶
NextSeparator returns an index of next separator in path.
Types ¶
type Handler ¶
type Handler struct {
// Method is an HTTP method.
Method string
// Path is a routing path for handler.
Path string
// Func is a function of handler of HTTP request.
Func HandlerFunc
}
Handler represents a handler of HTTP request.
type HandlerFunc ¶
type HandlerFunc func(w http.ResponseWriter, r *http.Request, params Params)
The HandlerFunc type is aliased to type of handler function.
type Mux ¶
type Mux struct{}
Mux represents a multiplexer for HTTP request.
func (*Mux) GET ¶
func (m *Mux) GET(path string, handler HandlerFunc) Handler
GET is shorthand of Mux.Handler("GET", path, handler).
func (*Mux) HEAD ¶
func (m *Mux) HEAD(path string, handler HandlerFunc) Handler
HEAD is shorthand of Mux.Handler("HEAD", path, handler).
func (*Mux) Handler ¶
func (m *Mux) Handler(method, path string, handler HandlerFunc) Handler
Handler returns a handler for HTTP method.
type Record ¶
type Record struct {
// Key for router construction.
Key string
// Result value for Key.
Value interface{}
}
Record represents a record data for router construction.
type Router ¶
type Router struct {
// SizeHint expects the maximum number of path parameters in records to Build.
// SizeHint will be used to determine the capacity of the memory to allocate.
// By default, SizeHint will be determined from given records to Build.
SizeHint int
// contains filtered or unexported fields
}
Router represents a URL router.
func (*Router) Lookup ¶
Lookup returns data and path parameters that associated with path. params is a slice of the Param that arranged in the order in which parameters appeared. e.g. when built routing path is "/path/to/:id/:name" and given path is "/path/to/1/alice". params order is [{"id": "1"}, {"name": "alice"}], not [{"name": "alice"}, {"id": "1"}].
