在上一篇大概了解了Golang的简单语法及函数等相关后,我们进入到Gin框架的安装
一、安装Gin包管理工具以及类库
1、安装govendor(包管理工具):
- 必须安装git
go get github.com/kardianos/govendor
2、安装一些辅助的类库:
- 在这里Gin官方就很友好了,把镜像放到了Gin的官方Github上
go get -u -v github.com/ramya-rao-a/go-outline
3、接下来安装go-outline
和 goreturns。
git clone https://github.com/golang/tools.git $GOPATH/src/golang.org/x/tools
go get -v github.com/ramya-rao-a/go-outline
go get -v github.com/sqs/goreturns
go get -v github.com/rogpeppe/godef
4、以上安装好Go的最基本配置后,最后一步安装Gin
go get -u -v github.com/gin-gonic/gin
5、在这个情况下,很多同学都会因为被墙了,而导致安装失败
不用着急,在这里其实Golang在Github上已经建立了镜像库,这个开源项目goproxy.io已经实现了我们想要的东西,我们只需要配置一下环境变量代理到goproxy.io上就可以正常下载被强的包了
- 开启 Go module 功能
- 如果您使用的 Go 版本是 1.13 及以上 (推荐)
go env -w GO111MODULE=on
go env -w GOPROXY=https://goproxy.io,direct
设置完上面几个环境变量后,您的 go
命令将从公共代理镜像中快速拉取您所需的依赖代码了。私有库的支持请看这里。
- 如果您使用的 Go 版本是 1.12 及以下
- Bash (Linux or macOS)
# 启用 Go Modules 功能
export GO111MODULE=on
# 配置 GOPROXY 环境变量
export GOPROXY=https://goproxy.io
或者,根据文档可以把上面的命令写到.profile
或.bash_profile
文件中长期生效。
- PowerShell (Windows)
# 启用 Go Modules 功能
$env:GO111MODULE="on"
# 配置 GOPROXY 环境变量
$env:GOPROXY="https://goproxy.io"
现在,当你构建或运行你的应用时,Go 将会通过 goproxy.io 获取依赖,具体可访问:https://goproxy.io/zh/ 查看配置
- 上面配置完后,我们就可以下载被墙的包了
go get -u -v github.com/gin-gonic/gin
6、下载好后测试一下是否能成功,创建main.go写入
package main
import (
"github.com/gin-gonic/gin"
"net/http"
)
func main() {
r := gin.Default()
r.GET("/", func(c *gin.Context) {
c.String(http.StatusOK, "搭建完成")
})
r.Run(":8888") // 端口号8888
}
7、运行main.go
go run main.go
8、访问http://127.0.0.1:8888/
二、热加载调试 Hot Reload
Python 的 Flask框架,有 debug 模式,启动时传入 debug=True 就可以热加载(Hot Reload, Live Reload)了。即更改源码,保存后,自动触发更新,浏览器上刷新即可。免去了杀进程、重新启动之苦。
1、Gin 原生不支持,但有很多额外的库可以支持。例如
github.com/codegangsta/gin
github.com/pilu/fresh
2、这次,我们采用fresh
go get -v -u github.com/pilu/fresh
3、安装好后,把go run main.go执行换成fresh执行,
每次更改源文件,代码将自动重新编译
- 但在这块有的同学可能会碰到下面的问题
- 这个是因为项目根目录下面没有go.mod文件,创建这个文件,这个文件里面用来管理module的。
- 我们在根目录下面执行
go mod code // code是项目名
- 这个时候会默认生成一个.mod的文件,接下来我们重新执行fresh
- 执行成功后,编辑文件后,会自动检测并且编译,这样就可以免去了每次修改后都要重启的痛苦了