README
¶
httpr
It is an implementation of yet another HTTP router.
The reason why this router was made is to be able to have pretty paths with parameters and regular endpoints at the same level. Like this:
GET /:a/:b
GET /assets/*filepath
In routers like httprouter this is not allowed.
This router is used like many others., example:
r := httpr.New()
r.Handler(http.MethodGet, "/", func(w http.ResponseWriter, r *http.Request) {
...
})
r.ServeStatic("/assets/*filepath", http.FS(os.Dir(".")))
r.NotFoundHandler = func(w http.ResponseWriter, r *http.Request) {
...
}
s := r.Sub("/api/v1")
s.Handler(http.MethodGet, "/", func(w http.ResponseWriter, r *http.Request) {
...
})
if err := http.ListenAndServe(":8000", r); err != nil {
...
}
Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var ParamsKey paramsKey = paramsKey{}
ParamsKey is used as a key for Params in a request's Context.
Functions ¶
Types ¶
type Router ¶
type Router struct { NotFoundHandler http.HandlerFunc // contains filtered or unexported fields }
func (*Router) Handler ¶
func (rr *Router) Handler(method, pattern string, handler http.HandlerFunc) error
Handler registers a handler for provided pattern for a given HTTP method. Pattern must start with a slash (/) symbol.
func (*Router) ServeStatic ¶
func (rr *Router) ServeStatic(path string, root http.FileSystem) error
ServeStatic serves a given file system.
Path should end with /*filepath to work.
Click to show internal directories.
Click to hide internal directories.