golang http框架gin (一)
阿新 • • 發佈:2019-02-19
簡介
gin這個詞很迷,看柯南的同學應該知道這是杜松子酒。
這裡介紹的gin是一種golang的web框架,乍看之下用法和python的flask很像。這是一種對golang官方提供的httprouter的改進,測試下來比httprouter快40倍
安裝
go get github.com/gin-gonic/gin
使用
本節會解釋官網的快速入門例子,剩餘部分會在後續章節中羅列
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{
"message": "pong",
})
})
r.Run() // listen and serve on 0.0.0.0:8080
}
這裡面的核心就是用gin.Default()方法生成一個gin router,然後再為其新增GET的query method,這裡是直接針對ping返回pong,我們來看一下執行狀況
執行main.go以後
wujingcideMacBook-Pro:studygin wujingci$ go run main.go
[GIN-debug] [WARNING] Running in "debug" mode. Switch to "release" mode in production.
- using env: export GIN_MODE=release
- using code: gin.SetMode(gin.ReleaseMode)
[GIN-debug] GET /ping --> main.main.func1 (3 handlers)
[GIN-debug] Environment variable PORT is undefined. Using port :8080 by default
[GIN-debug] Listening and serving HTTP on :8080
打出了debug資訊告訴gin router的服務已經啟動在本機的8080埠上,我們來curl一下這個url,立刻收到了返回結果
wujingcideMacBook-Pro:~ wujingci$ curl -XGET localhost:8080/ping
{"message":"pong"}
這時候看一下server端的output
[GIN] 2018/01/07 - 09:02:25 | 200 | 150µs | ::1 | GET /ping
多了這樣一些欄位
| TimeStamp | HttpStatusCode | 訪問地址 | HttpRequestMethod url