有了go mod再也不用gopath了
2019-07-01 本文已影响40人
阿duang_638a
go 1.11 引入了module概念,终于有官方版的包管理工具了。下面我们来用go mod 写一个gin的简单api例子
首先创建一个目录
$ mkdir mod1&& cd mod1
创建go.mod文件
$ go mod init mod1
# go: creating new go.mod: module mod1
$ ls
# go.mod
好现在mod文件有了,我们来看看里面是什么
$ cat go.mod
module mod1 // 模块名称
go 1.12 // 构建时的go版本
设置GO111MODULE = on
$ export GO111MODULE=on
引入gin墙太硬 正常go get是down不下来的 需要设置一下代理
cat go.mod 可以看到mod最后多出来一行 gin的引用
包引进来之后 ls 会看到多出来个 go.sum
多出来的 go.sum 指定了 gin 对其他模块详细的依赖版本 这里我们不用管
$ 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
创建 main.go 写入我们的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
}
启动服务
$ go run main.go
# ...
# [GIN-debug] Listening and serving HTTP on :8080
调用一下接口看看效果 curl 或者在浏览器访问 http://127.0.0.1:8080/ping
$ curl http://127.0.0.1:8080/ping
# {"message":"pong"}
好了!现在可以愉快的玩耍了~