Updated README.md.

This commit is contained in:
Alexander Andreev 2023-05-28 04:00:54 +04:00
parent fcbd09506a
commit 5d6a3630c6
Signed by: Arav
GPG Key ID: D22A817D95815393

View File

@ -3,19 +3,27 @@
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 standard endpoints at the same level.
parameters and regular endpoints at the same level. Like this:
As an example here is a structure used in my another project
(dwelling-upload):
GET /
POST /
GET /:hash/:name
POST /delete
DELETE /:hash
GET /:a/:b
GET /assets/*filepath
GET /robots.txt
GET /favicon.svg
Previously I used httprouter and I had to have `/f/:hash/:name` route
instead of just `/:hash/:name` because of collisions.
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) {
...
}
if err := http.ListenAndServe(":8000", r); err != nil {
...
}