router

package module
v0.0.0-...-8c10308 Latest Latest
Warning

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

Go to latest
Published: Jul 19, 2013 License: MIT Imports: 5 Imported by: 0

README

router

A HTTP router implemented in Golang

Documentation

initialize
r := router.NewRouter()
register middleware for all route
r.MiddlewareFunc(func(w http.ResponseWriter, r *http.Request) {
    // do something
})
register middleware for a route
r.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
    // do something
}).MiddlewareFunc(func(w http.ResponseWriter, r *http.Request) {
    // do something
}).Methods("GET", "POST")
register hook
r.HookFunc(route.HookBeforeRouter, func(w http.ResponseWriter, r *http.Request) {
    // do something
})

r.HookFunc(route.HookAfterDispatch, func(w http.ResponseWriter, r *http.Request) {
    // do something
})
URL For

UrlFor() method lest you dynamically create URLs for a named route

r.HandleFunc("/user/profile/query/<int:user_id>/", func(w http.ResponseWriter, r *http.Request) {
    // do something
}).Name("profile")

if urls, ok := r.UrlFor("profile", map[string]interface{}{"user_id": 100001}); ok {
    println(urls)
}
run
if err := http.ListenAndServe(":9090", r); err != nil {
    // do something
}

License

MIT: http://rem.mit-license.org

Documentation

Index

Constants

View Source
const (
	DefaultConverter = "any"

	HttpMethodGet    = "GET"
	HttpMethodPost   = "POST"
	HttpMethodPut    = "PUT"
	HttpMethodDelete = "DELETE"
)
View Source
const (
	HookBeforeRouter   = "hook.before.router"
	HookBeforeDispatch = "hook.before.dispatch"
	HookAfterRouter    = "hook.after.router"
	HookAfterDispatch  = "hook.after.dispatch"
)

Variables

View Source
var (
	DefaultReplacer = []string{"int", "\\d+", "string", "[\\w\\-]+", "any", "[^/]+"}
)

Functions

This section is empty.

Types

type MatchedRoute

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

type Route

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

func NewRoute

func NewRoute(pattern string, handler http.Handler) *Route

func (*Route) Methods

func (r *Route) Methods(v ...string) *Route

func (*Route) Middleware

func (r *Route) Middleware(middleware ...http.Handler) *Route

func (*Route) MiddlewareFunc

func (r *Route) MiddlewareFunc(f func(http.ResponseWriter, *http.Request)) *Route

func (*Route) Name

func (r *Route) Name(name string) *Route

func (*Route) StrictSlash

func (r *Route) StrictSlash(strictSlash bool) *Route

type Router

type Router struct {
	NotFoundHandler http.Handler
	// contains filtered or unexported fields
}

func NewRouter

func NewRouter() *Router

func (*Router) ApplyHook

func (r *Router) ApplyHook(name string, rw http.ResponseWriter, req *http.Request)

func (*Router) Handle

func (r *Router) Handle(pattern string, handler http.Handler) *Route

func (*Router) HandleFunc

func (r *Router) HandleFunc(pattern string, f func(http.ResponseWriter, *http.Request)) *Route

func (*Router) HookFunc

func (r *Router) HookFunc(name string, f func(http.ResponseWriter, *http.Request)) *Router

func (*Router) MiddlewareFunc

func (r *Router) MiddlewareFunc(f func(http.ResponseWriter, *http.Request)) *Router

func (*Router) ServeHTTP

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

func (*Router) StrictSlash

func (r *Router) StrictSlash(strictSlash bool) *Router

func (*Router) UrlFor

func (r *Router) UrlFor(name string, params map[string]interface{}) (string, bool)

Jump to

Keyboard shortcuts

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