Go 建立一個簡單的網頁伺服器的方式如下。
Go建立網頁伺服器的方式非常簡單,直接使用標準函式庫的net/http
套件即可。
先使用http.HandleFunc(pattern string, handler func(ResponseWriter, *Request))
定義處理URL pattern的請求。
- string參數
pattern
定義URL pattern。 - func參數
handler
為處理請求的邏輯。
最後用http.ListenAndServe(addr string, handler Handler)
監聽指定的port並啟動伺服器。
例如下面範例在main()
函式定義處理的URL pattern請求為/hello
,並在處理請求的handler函式中取得url請求參數(query string) key為name
的值,然後與"hello"字串組成內容寫出,然後設定伺服器的port號為8080並啟動。
main.go
package main
import (
"fmt"
"net/http"
)
func main() {
http.HandleFunc("/hello", func(w http.ResponseWriter, r *http.Request) {
name := r.URL.Query().Get("name") // get URL query string
content := fmt.Sprintf("hello, %s", name)
fmt.Fprint(w, content) // write out content
})
http.ListenAndServe(":8080", nil)
}
在命令列輸入go run main.go
執行Go程式啟動伺服器。
$ go run main.go
在瀏覽器網址列輸入http://localhost:8080/hello?name=john
得到的回應結果如下。
hello, john
或在命令列以curl發出curl -X GET "http://localhost:8080/hello?name=john"
的回應如下。
$ curl -X GET "http://localhost:8080/hello?name=john"
hello, john
不過http
對經常需要的路由處理、JSON處理、參數驗證、中間件處理等功能比較陽春,所以在寫網頁伺服器時通常會用Gin框架。
沒有留言:
張貼留言