技术文档golang工作生活

有了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"}

好了!现在可以愉快的玩耍了~

上一篇下一篇

猜你喜欢

热点阅读