厚土Go學習筆記 | 35. web伺服器實現動態路徑
阿新 • • 發佈:2022-05-04
有時候,我們希望給不同的使用者有不同的服務路徑。拋開那些高大上和深層次的原因,最淺顯的,可以讓使用者覺得自己挺受重視。路徑名稱最好就是使用者有關的字串。我們這次以使用者的名字來做個示例。
首先定義一個結構體 Person
type Person struct {
Name string
Age int
}
然後我們定義一下這個結構體的方法
func (ps *Person) sayCN(rw http.ResponseWriter, req *http.Request)
剩下的就是 http.Handler
的實現了。因為要動態,所以路徑那裡,我們寫成了這樣
"/"+p.Name
已經有了整體的概念了吧?我們來看一下完整程式碼
package main import ( "net/http" "fmt" ) type Person struct { Name string Age int } func (ps *Person) sayCN(rw http.ResponseWriter, req *http.Request) { fmt.Fprintf(rw, "你好啊,%v,你%d歲了嗎?n", ps.Name, ps.Age) } func main() { p := &Person{"joel", 45} http.HandleFunc("/"+p.Name, p.sayCN) http.ListenAndServe(":4000", nil) }
由於是 web 伺服器應用,程式執行後,需要使用瀏覽器訪問
http://192.168.1.105:4000/joel
地址中的 joel ,就是使用者的名字了。你可以試著改改使用者資訊,看一下路徑也會隨之變化的。
當前程式碼的執行結果是
你好啊,joel,你45歲了嗎?