This is a golang HTTP router that implements a trie data structure for optimal performance.
package main
import (
"fmt"
"github.com/zatiti/router"
"net/http"
)
func main() {
r := router.New(DefaultHandler)
r.Get("/test/:test_id", HandlerA, HandlerB, HandlerC)
http.ListenAndServe(":8080", r)
}
func DefaultHandler(w http.ResponseWriter, r *http.Request) {
fmt.Fprint(w, "Hello")
}
func HandlerA(w http.ResponseWriter, r *http.Request) {
fmt.Fprint(w, "A")
}
func HandlerB(w http.ResponseWriter, r *http.Request) {
fmt.Fprint(w, "B")
}
func HandlerC(w http.ResponseWriter, r *http.Request) {
fmt.Fprint(w, "C")
}