Gin框架系列01:極速上手

Gin是什麼?

Gin是Go語言編寫的web框架,具有中間件、崩潰處理、JSON驗證、內置渲染等多種功能。git

準備工做

本系列演示全部代碼都在Github中,感興趣的同窗能夠自行查閱,歡迎你們一塊兒完善。github

https://github.com/pingyeaa/golang-examples/tree/master/gin複製代碼

沒有安裝配置Go語言環境的同窗請先自行安裝,這裏再也不贅述。首先,咱們來建立工做目錄gingolang

mkdir gin && cd gin複製代碼

而後用go mod命令初始化項目,go mod是Go語言的包管理工具,官方推薦使用,有了它就再也不受GOPATH的限制,能夠在任何目錄初始化項目。web

go mod init gin複製代碼

接下來安裝gin庫。shell

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,若是看到以下提示即成功。

file

完整代碼

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 github.com/pingyeaa/go…


感謝你們的觀看,若是以爲文章對你有所幫助,歡迎關注公衆號「平也」,聚焦Go語言與技術原理。 關注我

相關文章
相關標籤/搜索