Gin是一個golang的微框架,封裝比較優(yōu)雅,API友好,源碼注釋比較明確,已經(jīng)發(fā)布了1.0版本。具有快速靈活,容錯方便等特點。
其實對于golang而言,web框架的依賴要遠(yuǎn)比Python,Java之類的要小。 (推薦學(xué)習(xí):go)
自身的net/http足夠簡單,性能也非常不錯??蚣芨袷且恍┏S煤瘮?shù)或者工具的集合。借助框架開發(fā),不僅可以省去很多常用的封裝帶來的時間,也有助于團(tuán)隊的編碼風(fēng)格和形成規(guī)范。
下面就Gin的用法做一個簡單的介紹。
首先需要安裝,安裝比較簡單,使用go get即可:
go get gopkg.in/gin-gonic/gin.v1
gin的版本托管再 gopkg的網(wǎng)站上。我在安裝的過程中,gokpg卡住了,后來不得不根據(jù)gin里的godep的文件,把響應(yīng)的源碼從github上下載,然后copy到對應(yīng)的目錄。
Hello World
使用Gin實現(xiàn)Hello world非常簡單,創(chuàng)建一個router,然后使用其Run的方法:
import ( "gopkg.in/gin-gonic/gin.v1" "net/http" ) func main(){ router := gin.Default() router.GET("/", func(c *gin.Context) { c.String(http.StatusOK, "Hello World") }) router.Run(":8000") }
簡單幾行代碼,就能實現(xiàn)一個web服務(wù)。使用gin的Default方法創(chuàng)建一個路由handler。然后通過HTTP方法綁定路由規(guī)則和路由函數(shù)。
不同于net/http庫的路由函數(shù),gin進(jìn)行了封裝,把request和response都封裝到gin.Context的上下文環(huán)境。最后是啟動路由的Run方法監(jiān)聽端口。麻雀雖小,五臟俱全。當(dāng)然,除了GET方法,gin也支持POST,PUT,DELETE,OPTION等常用的restful方法。