1. 背景
繼續學習 go
2. 關于 routing 的學習
上一篇 go 用的庫是:net/http ,這次我們使用官方的庫 github.com/gorilla/mux 來實現 routing。
3. demo示例
package mainimport ("fmt""net/http""github.com/gorilla/mux"
)func main() {r := mux.NewRouter()r.HandleFunc("/books/{title}/page/{page}", func(w http.ResponseWriter, r *http.Request) {vars := mux.Vars(r)title := vars["title"]page := vars["page"]fmt.Fprintf(w, "You've requested the book: %s on page %s\n", title, page)})http.ListenAndServe(":9001", r)
}
4. 執行后的結果
5. gorilla/mux 好處
- 實現了標準的http.Handler接口,所以可以與net/http標準庫結合使用,非常輕量;
- 可以根據請求的主機名、路徑、路徑前綴、協議、HTTP 首部、查詢字符串和 HTTP 方法匹配處理器,還可以自定義匹配邏輯;
- 可以在主機名、路徑和請求參數中使用變量,還可以為之指定一個正則表達式;
- 可以傳入參數給指定的處理器讓其構造出完整的 URL;
- 支持路由分組,方便管理和維護。