【Go】Gin从入门到精通—如何理解安装Gin并在本地运行
一、前言
在上文的碎碎念中,我们开启了学习Gin框架以及Go语言的旅途。
在本文中,你将掌握
- 从0开始创建Go项目
- 安装并引入GIn框架
- 本地启动Gin项目
二、正片
1. 从0开始创建Go项目
项目使用的工具为VSCode并安装命令行启动工具。
我们首先创建项目文件夹,注意要在go路径下的src内。
(base) xiaoyu@localhost src % mkdir gin01
(base) xiaoyu@localhost src % cd gin01
(base) xiaoyu@localhost gin01 % code .
- 1
- 2
- 3
gin01
为项目文件夹,我们将在这个文件下完成本文内容。
初始化go mod
(base) xiaoyu@localhost gin01 % go mod init
go: creating new go.mod: module gin01
- 1
- 2
这一步很重要,如果你不初始化go mod ,那就会造成库的引入会出问题。
执行完成之后,项目根目录会生成go.mod
文件。
module gin01
go 1.14
- 1
- 2
- 3
创建文件main.go
作为项目入口,作为简单事例,我们只做输出文字。
package main
import "fmt"
func main() {
fmt.Println("Hello, GO!2021!Fight!")
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
main()
一般作为项目的入口使用。
运行文件。go run main.go
(base) xiaoyu@localhost gin01 % go run main.go
Hello, GO!2021!Fight!
- 1
- 2
构建文件。go build main.go
构建指的是生成二进制文件,二进制文件可以脱离go环境直接执行。
(base) xiaoyu@localhost gin01 % ./main
Hello, GO!2021!Fight!
- 1
- 2
2. 安装并引入GIn框架
我们使用go get
命令安装框架,安装完成的框架会被放在pkg
内。
(base) xiaoyu@localhost gin01 % go get -u github.com/gin-gonic/gin
go: downloading github.com/gin-gonic/gin v1.7.4
go: github.com/gin-gonic/gin upgrade => v1.7.4
go: downloading github.com/gin-contrib/sse v0.1.0
go: downloading github.com/golang/protobuf v1.3.3
go: downloading github.com/mattn/go-isatty v0.0.12
go: downloading github.com/go-playground/validator/v10 v10.4.1
go: downloading github.com/ugorji/go v1.1.7
go: downloading github.com/ugorji/go/codec v1.1.7
go: downloading golang.org/x/sys v0.0.0-20200116001909-b77594299b42
go: downloading github.com/go-playground/universal-translator v0.17.0
go: downloading github.com/leodido/go-urn v1.2.0
go: downloading golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9
go: downloading github.com/go-playground/locales v0.13.0
go: github.com/golang/protobuf upgrade => v1.5.2
go: golang.org/x/sys upgrade => v0.0.0-20210923061019-b8560ed6a9b7
go: github.com/go-playground/validator/v10 upgrade => v10.9.0
go: github.com/json-iterator/go upgrade => v1.1.12
go: gopkg.in/yaml.v2 upgrade => v2.4.0
go: github.com/modern-go/reflect2 upgrade => v1.0.2
go: github.com/leodido/go-urn upgrade => v1.2.1
go: github.com/ugorji/go/codec upgrade => v1.2.6
go: github.com/go-playground/locales upgrade => v0.14.0
go: github.com/modern-go/concurrent upgrade => v0.0.0-20180306012644-bacd9c7ef1dd
go: github.com/go-playground/universal-translator upgrade => v0.18.0
go: github.com/mattn/go-isatty upgrade => v0.0.14
go: golang.org/x/crypto upgrade => v0.0.0-20210921155107-089bfa567519
go: downloading github.com/golang/protobuf v1.5.2
go: downloading github.com/json-iterator/go v1.1.12
go: downloading github.com/ugorji/go v1.2.6
go: downloading github.com/mattn/go-isatty v0.0.14
go: downloading github.com/go-playground/validator/v10 v10.9.0
go: downloading github.com/ugorji/go/codec v1.2.6
go: downloading golang.org/x/sys v0.0.0-20210923061019-b8560ed6a9b7
go: downloading google.golang.org/protobuf v1.26.0
go: downloading github.com/leodido/go-urn v1.2.1
go: downloading github.com/go-playground/universal-translator v0.18.0
go: downloading github.com/modern-go/reflect2 v1.0.2
go: downloading golang.org/x/crypto v0.0.0-20210921155107-089bfa567519
go: downloading golang.org/x/text v0.3.6
go: downloading github.com/go-playground/locales v0.14.0
go: google.golang.org/protobuf upgrade => v1.27.1
go: golang.org/x/text upgrade => v0.3.7
go: downloading golang.org/x/text v0.3.7
go: downloading google.golang.org/protobuf v1.27.1
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
我们在本地安装完成之后,就可以在main.go
文件中引入Gin
了。
import "github.com/gin-gonic/gin"
- 1
初始源码如下
package main
import "github.com/gin-gonic/gin"
func main() {
r := gin.Default() //创建gin
r.GET("/", index) //绑定路由
r.Run(":8001") //运行绑定端口
}
func index(c *gin.Context) {
c.JSON(200, gin.H{
"message": "go!go!go!",
})
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
我在代码中做了简要的注释,并且整个结构非常简洁。
学习中思考,思考中学习。
如果你学习过PHP语言的框架,那你就很清楚,一个框架的文件夹结构,是有官方规范的。
下图是PHP语言框架Yii2的官方项目结构,我们实际项目中也是这么用的,就算是改进也是在这个基础上的。
然而Gin显然并没有类似的结构。
后续我们将讨论这一话题。(留坑)
3. 本地启动Gin项目
和简单项目一致,我们也使用run
本地运行Gin项目。
(base) xiaoyu@localhost gin01 % go run main.go
[GIN-debug] [WARNING] Creating an Engine instance with the Logger and Recovery middleware already attached.
[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 / --> main.index (3 handlers)
[GIN-debug] Listening and serving HTTP on :8001
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
本地浏览器访问http://localhost:8001/
到此,我们就完成了Gin从安装到运行的全部流程。
三、总结
go mod init
很重要,是引入库的基础- 多思考多想问题,能提高学习效率
留了个项目文件夹的坑,后续完成!
本文源码地址 https://download.csdn.net/download/diandianxiyu/24458284
文章来源: coderfix.blog.csdn.net,作者:小雨青年,版权归原作者所有,如需转载,请联系作者。
原文链接:coderfix.blog.csdn.net/article/details/120463913
- 点赞
- 收藏
- 关注作者
评论(0)