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語言與技術原理,

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/27357.html
標籤:Go
