router

package module
v2.2.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 23, 2023 License: GPL-2.0 Imports: 7 Imported by: 0

Documentation

Index

Constants

View Source
const (
	GET     = "GET"
	POST    = "POST"
	PUT     = "PUT"
	DELETE  = "DELETE"
	PATCH   = "PATCH"
	OPTIONS = "OPTIONS"
	HEAD    = "HEAD"

	// Special method for matching all methods
	ALL = "ALL"
)

HTTP Methods

Variables

This section is empty.

Functions

func RedirectWithNextURL added in v2.0.1

func RedirectWithNextURL(r *request.Request, nextURL string)

Redirect user to a URL, appending the current URL as a "next" query parameter

func ToHTTPHandler added in v2.0.5

func ToHTTPHandler(h Handler) http.Handler

Make a new http.Handler from a Handler

func WalkRoutes

func WalkRoutes(route *Route, f func(*Route, int))

Recurse over a routes children, keeping track of depth

Types

type Config added in v2.1.3

type Config struct {
	// The address to listen on
	Host string
	Port int
	// Wether to skip trailing slashes
	SkipTrailingSlash bool
	// The server to use
	Server          *http.Server
	NotFoundHandler Handler
}

Configuration options for the router, and serving.

type HandleFunc

type HandleFunc func(*request.Request)

HandleFunc is the function that is called when a route is matched

func HTTPWrapper

func HTTPWrapper(handler func(http.ResponseWriter, *http.Request)) HandleFunc

Wrapper function for http.Handler to make it compatible with HandleFunc

func (HandleFunc) ServeHTTP added in v2.2.2

func (f HandleFunc) ServeHTTP(r *request.Request)

type Handler

type Handler interface {
	ServeHTTP(*request.Request)
}

Handler is the interface that wraps the ServeHTTP method.

func FromHTTPHandler added in v2.0.8

func FromHTTPHandler(h http.Handler) Handler

Make a new handler from a http.Handler

type Middleware added in v2.0.8

type Middleware func(Handler) Handler

Middleware is the function that is called when a route is matched

type Registrar

type Registrar interface {
	// Put registers a new route with the given path and method.
	Put(path string, handler HandleFunc, name ...string) Registrar

	// Post registers a new route with the given path and method.
	Post(path string, handler HandleFunc, name ...string) Registrar

	// Get registers a new route with the given path and method.
	Get(path string, handler HandleFunc, name ...string) Registrar

	// Delete registers a new route with the given path and method.
	Delete(path string, handler HandleFunc, name ...string) Registrar

	// Patch registers a new route with the given path and method.
	Patch(path string, handler HandleFunc, name ...string) Registrar

	// Options registers a new route with the given path and method.
	Options(path string, handler HandleFunc, name ...string) Registrar

	// Head registers a new route with the given path and method.
	Head(path string, handler HandleFunc, name ...string) Registrar

	// Register a route for all methods
	Any(path string, handler HandleFunc, name ...string) Registrar

	// HandleFunc registers a new route with the given path and method.
	HandleFunc(method, path string, handler HandleFunc, name ...string) Registrar

	// Handle is a convenience method that wraps the http.Handler in a HandleFunc
	Handle(method, path string, handler http.Handler) Registrar

	// Use adds middleware to the router.
	Use(middlewares ...Middleware)

	// Group creates a new router URL group
	Group(path string, name string, middlewares ...Middleware) Registrar

	// Addgroup adds a group of routes to the router
	AddGroup(group Registrar)

	// This is the only function the router does not implement.
	// Formats the URL for the given route, based on the given arguments.
	URL(args ...any) string
}

Registrar is the main interface for registering routes

func Group

func Group(path string, name string) Registrar

Group creates a new router URL group

type Route

type Route struct {
	Method      string
	Path        string
	HandlerFunc HandleFunc
	// contains filtered or unexported fields
}

Route is a single route in the router

func (*Route) AddGroup

func (r *Route) AddGroup(group Registrar)

Add a group to the route

func (*Route) Any

func (r *Route) Any(path string, handler HandleFunc, name ...string) Registrar

Register a route for all methods

func (*Route) Delete

func (r *Route) Delete(path string, handler HandleFunc, name ...string) Registrar

Delete registers a new route with the given path and method.

func (*Route) DisableMiddleware added in v2.0.1

func (r *Route) DisableMiddleware()

Disable the router's middlewares for this route, and all its children It will however still run the route's own middlewares.

func (*Route) Get

func (r *Route) Get(path string, handler HandleFunc, name ...string) Registrar

Get registers a new route with the given path and method.

func (*Route) Group

func (r *Route) Group(path string, name string, middlewares ...Middleware) Registrar

Group creates a new group of routes

func (*Route) Handle

func (r *Route) Handle(method, path string, handler http.Handler) Registrar

Handle is a convenience method that wraps the http.Handler in a HandleFunc

func (*Route) HandleFunc

func (r *Route) HandleFunc(method, path string, handler HandleFunc, name ...string) Registrar

HandleFunc registers a new route with the given path and method.

func (*Route) Head

func (r *Route) Head(path string, handler HandleFunc, name ...string) Registrar

Head registers a new route with the given path and method.

func (*Route) Match

func (r *Route) Match(method, path string) (bool, *Route, request.URLParams)

Match checks if the given path matches the route

func (*Route) Name added in v2.2.3

func (r *Route) Name() string

Return the name of the route

func (*Route) Options

func (r *Route) Options(path string, handler HandleFunc, name ...string) Registrar

Options registers a new route with the given path and method.

func (*Route) Patch

func (r *Route) Patch(path string, handler HandleFunc, name ...string) Registrar

Patch registers a new route with the given path and method.

func (*Route) Post

func (r *Route) Post(path string, handler HandleFunc, name ...string) Registrar

Post registers a new route with the given path and method.

func (*Route) Put

func (r *Route) Put(path string, handler HandleFunc, name ...string) Registrar

Put registers a new route with the given path and method.

func (*Route) Route added in v2.2.3

func (r *Route) Route(deepFind bool, method string, parts []string) *Route

Route returns the route that matches the given method and path

func (*Route) URL added in v2.0.4

func (r *Route) URL(args ...any) string

Format the url based on the arguments given. Panics if route accepts more arguments than are given.

func (*Route) Use

func (r *Route) Use(middlewares ...Middleware)

Use adds middleware to the route

type Router

type Router struct {
	// contains filtered or unexported fields
}

Router is the main router struct It takes care of dispatching requests to the correct route

func NewRouter

func NewRouter(config *Config) *Router

NewRouter creates a new router

func (*Router) AddGroup

func (r *Router) AddGroup(group Registrar)

Addgroup adds a group of routes to the router

func (*Router) Any

func (r *Router) Any(path string, handler HandleFunc, name ...string) Registrar

Register a route for all methods

func (*Router) Delete

func (r *Router) Delete(path string, handler HandleFunc, name ...string) Registrar

Delete registers a new route with the given path and method.

func (*Router) Get

func (r *Router) Get(path string, handler HandleFunc, name ...string) Registrar

Get registers a new route with the given path and method.

func (*Router) Group

func (r *Router) Group(path string, middlewares ...Middleware) Registrar

Group creates a new router URL group

func (*Router) Handle

func (r *Router) Handle(method, path string, handler http.Handler) Registrar

Handle is a convenience method that wraps the http.Handler in a HandleFunc

func (*Router) HandleFunc

func (r *Router) HandleFunc(method, path string, handler HandleFunc, name ...string) Registrar

HandleFunc registers a new route with the given path and method.

func (*Router) Head

func (r *Router) Head(path string, handler HandleFunc, name ...string) Registrar

Head registers a new route with the given path and method.

func (*Router) Listen added in v2.0.7

func (r *Router) Listen() error

func (*Router) ListenTLS added in v2.0.7

func (r *Router) ListenTLS(certFile, keyFile string) error

func (*Router) Options

func (r *Router) Options(path string, handler HandleFunc, name ...string) Registrar

Options registers a new route with the given path and method.

func (*Router) Patch

func (r *Router) Patch(path string, handler HandleFunc, name ...string) Registrar

Patch registers a new route with the given path and method.

func (*Router) Post

func (r *Router) Post(path string, handler HandleFunc, name ...string) Registrar

Post registers a new route with the given path and method.

func (*Router) Put

func (r *Router) Put(path string, handler HandleFunc, name ...string) Registrar

Put registers a new route with the given path and method.

func (*Router) Route added in v2.2.3

func (r *Router) Route(deepFind bool, method, name string) *Route

Get a route by name. Route names are optional, when used a route's child can be access like so: router.Route("routeName") router.Route("parentName:childName")

func (*Router) ServeHTTP

func (r *Router) ServeHTTP(w http.ResponseWriter, req *http.Request)

ServeHTTP dispatches the request to the handler whose pattern matches the request URL.

func (*Router) SiteMap

func (r *Router) SiteMap() []byte

SiteMap returns a ready to use XML sitemap

func (*Router) Use

func (r *Router) Use(middlewares ...Middleware)

Use adds middleware to the router.

type Vars

type Vars map[string]string

Variable map passed to the route.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL