package denco
import "github.com/go-openapi/runtime/middleware/denco"
Package denco provides fast URL router.
Index ¶
- Constants
- Variables
- func NextSeparator(path string, start int) int
- type Handler
- type HandlerFunc
- type Mux
- func NewMux() *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 ¶
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 NewMux ¶
func NewMux() *Mux
NewMux returns a new Mux.
func (*Mux) Build ¶
Build builds a http.Handler.
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.
func (*Mux) POST ¶
func (m *Mux) POST(path string, handler HandlerFunc) Handler
POST is shorthand of Mux.Handler("POST", path, handler).
func (*Mux) PUT ¶
func (m *Mux) PUT(path string, handler HandlerFunc) Handler
PUT is shorthand of Mux.Handler("PUT", path, handler).
type Param ¶
Param represents name and value of path parameter.
type Params ¶
type Params []Param
Params represents the name and value of path parameters.
func (Params) Get ¶
Get gets the first value associated with the given name. If there are no values associated with the key, Get returns "".
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.
func NewRecord ¶
NewRecord returns a new Record.
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 New ¶
func New() *Router
New returns a new Router.
func (*Router) Build ¶
Build builds URL router from records.
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"}].
Source Files ¶
- Version
- v0.28.0 (latest)
- Published
- Mar 9, 2024
- Platform
- linux/amd64
- Imports
- 5 packages
- Last checked
- 1 month ago –
Tools for package owners.