Newer
Older
// NewRouter returns a new Mux object that implements the Router interface.
func NewRouter() *Mux {
return NewMux()
}
type StructReflector interface {
// mimics the behavior of the handlers in the go-ethereum rpc package
// if you don't know how to use this, just use the chi-like interface instead.
RegisterStruct(pattern string, rcvr any) error
// mimics the behavior of the handlers in the go-ethereum rpc package
// if you don't know how to use this, just use the chi-like interface instead.
RegisterFunc(pattern string, rcvr any) error
// adapted to fit json-rpc.
// Group adds a new inline-Router along the current routing
// path, with a fresh middleware stack for the inline-Router.
Group(fn func(r Router)) Router
// Route mounts a sub-Router along a `pattern`` string.
Route(pattern string, fn func(r Router)) Router
// Mount attaches another Handler along ./pattern/*
// Handle and HandleFunc adds routes for `pattern` that matches
// all HTTP methods.
Handle(pattern string, h jsonrpc.Handler)
HandleFunc(pattern string, h jsonrpc.HandlerFunc)
// NotFound defines a handler to respond whenever a route could
// not be found.
}
// Routes interface adds two methods for router traversal, which is also
// used by the `docgen` subpackage to generation documentation for Routers.
type Routes interface {
// Routes returns the routing tree in an easily traversable structure.
Routes() []Route
// Middlewares returns the list of middlewares in use by the router.
Middlewares() Middlewares
// Match searches the routing tree for a handler that matches
// the method/path - similar to routing a http request, but without
// executing the handler thereafter.
Match(rctx *Context, path string) bool
}
// Middlewares type is a slice of standard middleware handlers with methods
// to compose middleware chains and Handler's.