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"}].