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 = '#' // 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 globally your own NotFound handler, please overwrite this variable. If you want to use your own NotFound handler for each Mux, use Mux.NotFound instead.
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 { // NotFound is the custom NotFound handler for this Mux. // If nil, Denco will use 'denco.NotFound' handler. NotFound HandlerFunc }
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"}].