gorilla/mux 是一个用于构建 HTTP 服务的 Go 语言路由器和调度器。它扩展了标准库的 net/http 包,提供了更强大和灵活的路由匹配和 URL 构建功能。
导入
go get -u github.com/gorilla/mux
mux.NewRouter() 是使用 Gorilla Mux 包创建一个新的路由器的函数。
通过调用 mux.NewRouter()获得一个具备路由功能的路由器实例。可以使用该实例来定义不同的路由和处理函数。
package main
import (
"fmt"
"github.com/gorilla/mux"
"net/http"
)
func main() {
router := mux.NewRouter()
router.HandleFunc("/", homeHandler).Methods("GET")
router.HandleFunc("/users", usersHandler).Methods("GET")
http.ListenAndServe(":8080", router)
}
func homeHandler(w http.ResponseWriter, r *http.Request) {
fmt.Fprint(w, "Get!")
}
func usersHandler(w http.ResponseWriter, r *http.Request) {
fmt.Fprint(w, "Get users")
}访问http://localhost:8080/

访问http://localhost:8080/users

router.Methods().Path().Handler() 是 Gorilla Mux 路由器的一种链式调用方法,用于定义路由、HTTP 方法和处理函数之间的映射关系。
以上的main函数还可以改为
func main() {
router := mux.NewRouter()
router.Methods("GET").
Path("/").
HandlerFunc(homeHandler)
router.Methods("GET").
Path("/users").
HandlerFunc(usersHandler)
http.ListenAndServe(":8080", router)
}其余代码不变
再次访问
访问http://localhost:8080/

访问http://localhost:8080/users



