Gin框架系列01:極速上手
- 2020 年 4 月 6 日
- 筆記
Gin是什麼?
Gin是Go語言編寫的web框架,具備中間件、崩潰處理、JSON驗證、內置渲染等多種功能。
準備工作
本系列演示所有代碼都在Github中,感興趣的同學可以自行查閱,歡迎大家一起完善。
https://github.com/pingyeaa/golang-examples/tree/master/gin
沒有安裝配置Go語言環境的同學請先自行安裝,這裡不再贅述。首先,我們來創建工作目錄gin
。
mkdir gin && cd gin
然後用go mod
命令初始化項目,go mod
是Go語言的包管理工具,官方推薦使用,有了它就不再受GOPATH的限制,可以在任何目錄初始化項目。
go mod init gin
接下來安裝gin
庫。
go get -u github.com/gin-gonic/gin
創建演示代碼的入口文件main.go
,當前項目結構大致如下。
. ├── go.mod ├── go.sum └── main.go
編寫代碼
工作準備就緒之後,來開始今天的代碼編寫,以經典代碼hello word
為例。
實例化一個gin對象
r := gin.Default()
Default方法的主要作用是實例化一個帶有日誌、故障恢復中間件的引擎。
func Default() *Engine { debugPrintWARNINGDefault() engine := New() engine.Use(Logger(), Recovery()) return engine }
定義請求
定義一個GET請求的路由,參數一是路由地址,也就是在瀏覽器訪問的相對路徑,參數二是一個匿名函數,函數內部用於業務邏輯處理。
r.GET("/hello", func(c *gin.Context) { })
我們就在函數內調用JSON方法返回數據。JSON的操作非常簡單,參數一是狀態碼,參數二是JSON的內容。
r.GET("/hello", func(c *gin.Context) { c.JSON(200, gin.H{ "msg": "Hello world!", }) })
JSON內容可以通過gin提供的H方法來構建,非常方便。
// H is a shortcut for map[string]interface{} type H map[string]interface{}
運行
Run方法最終會調用內置http
庫的ListenAndServe
方法來監聽端口,如果不傳參數默認監聽80端口,也可以通過參數來變更地址和端口。
r.Run(":8081")
測試
在瀏覽器訪問localhost:8081
,如果看到如下提示即成功。
完整代碼
package main import "github.com/gin-gonic/gin" func main() { r := gin.Default() r.GET("/ping", func(c *gin.Context) { c.JSON(200, gin.H{ "msg": "Hello world!", }) }) r.Run(":8081") }
Go語言庫代碼示例,歡迎star
https://github.com/pingyeaa/golang-examples
感謝大家的觀看,如果覺得文章對你有所幫助,歡迎關注公眾號「平也」,聚焦Go語言與技術原理。