go 1.11 引入了module概念,終于有官方版的包管理工具了。下面我們來(lái)用go mod 寫(xiě)一個(gè)gin的簡(jiǎn)單api例子
首先創(chuàng)建一個(gè)目錄
$ mkdir mod1&& cd mod1
創(chuàng)建go.mod文件
$ go mod init mod1
# go: creating new go.mod: module mod1
$ ls
# go.mod
好現(xiàn)在mod文件有了喘蟆,我們來(lái)看看里面是什么
$ cat go.mod
module mod1 // 模塊名稱(chēng)
go 1.12 // 構(gòu)建時(shí)的go版本
設(shè)置GO111MODULE = on
$ export GO111MODULE=on
引入gin墻太硬 正常go get是down不下來(lái)的 需要設(shè)置一下代理
cat go.mod 可以看到mod最后多出來(lái)一行 gin的引用
包引進(jìn)來(lái)之后 ls 會(huì)看到多出來(lái)個(gè) go.sum
多出來(lái)的 go.sum 指定了 gin 對(duì)其他模塊詳細(xì)的依賴(lài)版本 這里我們不用管
$ export GOPROXY=https://goproxy.io
$ go get github.com/gin-gonic/gin
# go: finding github.com/gin-gonic/gin v1.4.0
...
$ cat go.mod
module mod1
go 1.12
require ( // 增加了gin的引用
github.com/gin-gonic/gin v1.4.0 // indirect
)
$ ls
# go.mod go.sum
創(chuàng)建 main.go 寫(xiě)入我們的hello word
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
}
啟動(dòng)服務(wù)
$ go run main.go
# ...
# [GIN-debug] Listening and serving HTTP on :8080
調(diào)用一下接口看看效果 curl 或者在瀏覽器訪(fǎng)問(wèn) http://127.0.0.1:8080/ping
$ curl http://127.0.0.1:8080/ping
# {"message":"pong"}
好了邻眷!現(xiàn)在可以愉快的玩耍了~