在建立web-server時,我們需要讓使用者能夠透過我們的api來進行搜尋 新增與修改的功能,意即我們要建立出web-server的router,在這種情況下,使用mux會是最好的選擇。
Mux是什麼?並非Isuzu出款的車子,而是指多路復用器(multiplexer),golang內部可以使用
http.NewServeMux()
來建立ServeMux實體,不過這邊要介紹的是Gorilla系列的Mux,Gorilla也有其他寫web服務時會用到的套件,例如session或cookie之類的,不過我們在這邊只介紹Mux。
Router的建立非常簡單,這邊用官方的範例來說明:
func handler(w http.ResponseWriter, r *http.Request) {
return
}
func main() {
r := mux.NewRouter()
r.HandleFunc("/articles", handler).Methods("GET")
src := &http.Server{
Addr: "0.0.0.0:8080",
WriteTimeout: time.Second * 15,
ReadTimeout: time.Second * 15,
IdleTimeout: time.Second * 60,
Handler: r, // Pass our instance of gorilla/mux in.
}
src.ListenAndServe()
}
這邊可以看到,照著下面這些步驟走,就可以很簡單地架設起一個server:
單純只要一個能被打到的server,這樣就完成了,不過,要達到我們的架構圖所設想的系統,還有很長一段路要走。
而Mux除了提供Router之後,還有其他很多功能,像是建立subRouter之類的,下一章我們會介紹用來建構Middleware的套件,配合mux,可以完成我們web-server的入口建構。