router

package module
v2.2.1 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 HandlerWrapper

func HandlerWrapper(handler Handler) http.Handler

Wrapper function for router.Handler to make it compatible with http.handler

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

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

func ToHandler added in v2.0.2

func ToHandler(f func(*request.Request)) Handler

Make a new 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) Registrar

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

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

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

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

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

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

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

	// HandleFunc registers a new route with the given path and method.
	HandleFunc(method, path string, handler HandleFunc) 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, 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) 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) Registrar

Register a route for all methods

func (*Route) Delete

func (r *Route) Delete(path string, handler HandleFunc) 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) Registrar

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

func (*Route) Group

func (r *Route) Group(path 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) Registrar

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

func (*Route) Head

func (r *Route) Head(path string, handler HandleFunc) 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) Options

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

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

func (*Route) Patch

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

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

func (*Route) Post

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

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

func (*Route) Put

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

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

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) Registrar

Register a route for all methods

func (*Router) Delete

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

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

func (*Router) Get

func (r *Router) Get(path string, handler HandleFunc) 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) Registrar

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

func (*Router) Head

func (r *Router) Head(path string, handler HandleFunc) 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) Registrar

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

func (*Router) Patch

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

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

func (*Router) Post

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

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

func (*Router) Put

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

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

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