原創做者,公衆號【程序員讀書】,歡迎關注公衆號,轉載文章請註明出處哦。git
雖然Go標準庫net/http
對使用Go開發Web應用提供很是強大的支持,然而對於想要快速開發並及上線項目的團隊來講,使用Web框架不失爲一種更好的選擇。程序員
Go社區中,有許多很是優秀的Web框架,如Gin
,Iris
,Echo
,Martini
,Revel
以及國人開發的Beego
框架。github
Radix
樹的路由,性能很是強大。Logger
,Gzip
,Authorization
等。JSON
數據格式。RouteGroup
),能夠更方便組織路由。HTML
、JSON
、YAML
、XML
等數據格式的響應。Gin目前最新的版本是V1.3.0
,其安裝過程很是簡單,不過在安裝Gin以前,須要安裝Go1.6
或以上的版本(後續版本可能要Go1.8
或以上),下面介紹兩種安裝方式。bash
$ go get -u github.com/gin-gonic/gin //使用-u安裝最新版本
複製代碼
提示:Govendor是使用Go語言開發Go項目依賴管理工具。框架
$ go get github.com/kardianos/govendor
複製代碼
$ govendor init
$ govendor fetch github.com/gin-gonic/gin@v1.3
複製代碼
經過上面的兩種方式安裝好Gin以後,下面經過一個簡單示例看看怎麼Gin使用開發Web應用。工具
import "github.com/gin-gonic/gin"
func main(){
r := gin.Default()
r.GET("/test",func(c *gin.Context){
c.JSON(200,gin.H{"hello":"world"})
})
r.Run()
}
複製代碼
能夠看到,使用gin開發一個Web服務是很簡單的一件事情,能夠簡單地分解爲四步:性能
在咱們安裝Gin框架的時候,已經將gin包安裝到本地,若是使用go get
命令安裝的,則這個包路徑爲$GOPATH/src/github.com/gin-gonic/gin
,而咱們只須要使用import
命令即可以將包導入。fetch
import "github.com/gin-gonic/gin"
複製代碼
使用gin.Default()方法會返回gin.Engine實例,表示默認路由引擎。spa
r := gin.Default()
複製代碼
經過這種方式建立的gin.Engine,會默認使用Logger和Recovery兩個中間件,能夠用gin.New()方法建立一個不包含任何中間件的默認路由。code
r := gin.New()
複製代碼
經過默認路由,咱們能夠建立處理HTTP請求的方法,示例中使用GET方法:
r.GET("/test",func(c *gin.Context){
c.JSON(200,gin.H{"hello":"world"})
})
複製代碼
Gin支持全部通用的HTTP請求方法:GET
,POST
,PUT
,PATCH
,OPTIONS
,HEAD
,DELETE
,其使用方式與上面例子相同,如POST:
r.POST("/test",func(c *gin.Context){
c.JSON(200,gin.H{"hello":"world"})
})
複製代碼
每種方法都只處理對應的HTTP請求,使用Any方法則能夠處理任何的HTTP請求。
r.Any("/test",func(c *gin.Context){
c.JSON(200,gin.H{"hello":"world"})
})
複製代碼
定義好請求以後,使用Run()方法即可監聽端口,開始接受HTTP請求,若是Run()方法沒有傳入參數的話,則默認監聽的端口是8080。
r.Run() //r.Run(":3000")
複製代碼
Gin是一個Go Web開發的輕量級框架,使用也很是地簡單,容易上手,可是,使用Gin開發前,仍是須要對Go原生支持的net/http有所瞭解。
你的關注,是我寫做路上最大的鼓勵!