iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 8
0

在建立web-server時,我們需要讓使用者能夠透過我們的api來進行搜尋 新增與修改的功能,意即我們要建立出web-server的router,在這種情況下,使用mux會是最好的選擇。

Gorilla 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:

  1. 透過mux.NewRouter()可以產生一個Router物件
  2. 對這個物件指定路由(/articles)以及後面會call的函數(func handler)
  3. 接下來建立http.Server物件,指定好監聽的port跟使用的router(r)
  4. 啟動監聽

單純只要一個能被打到的server,這樣就完成了,不過,要達到我們的架構圖所設想的系統,還有很長一段路要走。
而Mux除了提供Router之後,還有其他很多功能,像是建立subRouter之類的,下一章我們會介紹用來建構Middleware的套件,配合mux,可以完成我們web-server的入口建構。


上一篇
Day7-Graceful shutdown
下一篇
Day9-中介器(middleware)
系列文
從0開始的golang web server30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言