gorilla/mux

gorilla/mux

简介

gorilla/mux是一个强大的路由,小巧但是稳定高效,不仅可以支持正则路由还可以按照Method,header,host等信息匹配,完全兼容http.ServerMux。

用例

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
//新建路由
r := mux.NewRouter()

//绑定路由回调函数
//与http.ServerMux不同的是mux.Router是完全的正则匹配,设置路由路径/index/,如果访问路径/idenx/hello会返回404
//设置路由路径为/index/访问路径/index也是会报404的,需要设置r.StrictSlash(true), /index/与/index才能匹配
 r.HandleFunc("/index/", func(w http.ResponseWriter, r *http.Request) {
    w.Write([]byte("root path"))
})

//mux.Vars(r)会返回该请求所解析出的所有参数(map[string]string)
//访问/hello/ghbai 会输出 hello ghbai
 r.HandleFunc("/hello/{name:[a-zA-Z]+}", func(w http.ResponseWriter, r *http.Request) {
    w.Write([]byte(fmt.Sprintf("hello %s", mux.Vars(r)["name"])))
})

//设置到http处理端
http.Handle("/", r)
updatedupdated2024-05-102024-05-10