上一篇我們介紹了 Go 的網路操作套件 net/http,那就不能錯過 Go 的網頁框架(framework)套件 gin,因為要架設一個網站,還是需要考慮到很多情境,例如 request 的資料驗證,middleware、response 的格式,這時就很需要框架來做一個輔助。
而為何使用 gin,Go語言又不是只有一種網頁 framework,我們簡單看個表格:
(圖片來源:https://www.mindinventory.com/blog/top-web-frameworks-for-development-golang/)
這裡大概整理了一下 gin 的優點:
所以大家使用率最高,效能又前幾,你能不用嗎,你必須說用,不然我沒辦法往下說了XD!
今天終於要介紹第三方套件了,gin 是在 github 上的套件,而下載套件的方法不只一種,但今天介紹大家最常用的 go get:
$ go get github.com/gin-gonic/gin
如此一來,即可安裝套件到 GOPATH 的目錄下,所有的專案都可以使用該套件。
這裡直接帶一個範例:
package main
import (
"fmt"
"net/http"
"github.com/gin-gonic/gin"
)
func main() {
gin.SetMode(gin.DebugMode)
apiServer := gin.Default()
apiServer.GET("/ping", Ping)
apiServer.GET("/ready", Ready)
err := apiServer.Run(":8787" )
if err != nil {
fmt.Println("health check:", err)
}
}
//Ping health check
func Ready(c *gin.Context) {
c.JSON(http.StatusOK, gin.H{
"status": "UP",
})
}
func Ping(c *gin.Context) {
c.JSON(http.StatusOK, gin.H{
"message": "PONG",
})
}
這是一個很簡單的範例,我們寫了兩個函式 Ready 和 Ping,這是一個很基本的 health check 套路,回傳是以 Json 格式為主,若程式正常運行,則打到網頁會是回傳函式內的內容。在來你要確保 port 是沒有其他程式佔據的,在運行程式後,你就可以打開自己的瀏覽器:
結果會是呈現這樣,如此一來,你就學會使用 gin 框架架設自己的網站了。
今天介紹了 Go 語言的 framwork 套件 gin,其實你也不需要框架,即可以架設自己的網站,只是框架提供了許多方便性,可以大大的提升開發的速度。希望今天的介紹對你有幫助,謝謝今天的閱讀!