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)
|