这篇文章主要讲解了“如何使用golang web框架Gin”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何使用golang web框架Gin”吧!
https://github.com/gin-gonic/gin
新建目录go-gin-test
. 然后cd
进入目录
➜ mkdir go-gin-test➜ cd go-gin-test
我们使用 go mod
作为我们项目的包管理。
初始化go.mod文件
go mod init example.com/m/v2
可以使用下面的Go命令安装Gin
go get -u github.com/gin-gonic/gin
看到如下输出证明我们已经安装好了gin。
➜ go-gin-test go get -u github.com/gin-gonic/gingo: github.com/gin-gonic/gin upgrade => v1.6.3go: gopkg.in/yaml.v2 upgrade => v2.4.0go: github.com/golang/protobuf upgrade => v1.5.2go: github.com/modern-go/reflect2 upgrade => v1.0.1go: github.com/modern-go/concurrent upgrade => v0.0.0-20180306012644-bacd9c7ef1ddgo: github.com/ugorji/go/codec upgrade => v1.2.5go: golang.org/x/sys upgrade => v0.0.0-20210403161142-5e06dd20ab57go: github.com/go-playground/validator/v10 upgrade => v10.4.2go: github.com/json-iterator/go upgrade => v1.1.10go: github.com/leodido/go-urn upgrade => v1.2.1go: downloading github.com/golang/protobuf v1.5.2go: downloading golang.org/x/sys v0.0.0-20210403161142-5e06dd20ab57go: downloading github.com/go-playground/validator/v10 v10.4.2go: downloading github.com/ugorji/go v1.2.5go: downloading google.golang.org/protobuf v1.26.0go: downloading github.com/ugorji/go/codec v1.2.5go: golang.org/x/crypto upgrade => v0.0.0-20210322153248-0c34fe9e7dc2go: google.golang.org/protobuf upgrade => v1.26.0go: downloading golang.org/x/crypto v0.0.0-20210322153248-0c34fe9e7dc2
go get
长时间未响应或者出现超时建议使用
http://goproxy.cn/
配置国内代理 现在我们来编写我们的第一个web程序
➜ go-gin-test tree -L 3.├── go.mod└── go.sum
目前我们的目录结构如上所示
接下来
main.go
文件➜ go-gin-test tree -L 3.├── go.mod├── go.sum├── mian.go
首先我们来编辑main.go
文件
package mainimport "github.com/gin-gonic/gin"func main() { r := gin.Default() r.GET("/hello", func(c *gin.Context) { c.JSON(200, gin.H{ "message": "hello world", }) }) r.Run() // listen and serve on 0.0.0.0:8080 (for windows "localhost:8080")}
执行go build -o hello
来编译为可执行文件
➜ go-gin-test go build -o hello➜ go-gin-test lsgo.mod go.sum hello mian.go
执行./hello
让我们的服务跑起来
➜ go-gin-test ./hello [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 /hello --> main.main.func1 (3 handlers)[GIN-debug] Environment variable PORT is undefined. Using port :8080 by default[GIN-debug] Listening and serving HTTP on :8080
打开浏览器查看http://localhost:8080/hello
至此,我们已经完成第一个web服务的构建
在实际的生产活动中,业务接口通常需要拆分成很多组
,例如/user/XXX
、/api/XXX
,那我们利用gin应该怎么做呢?
我们接着上面的工程进行改造
routerex
文件夹router.go
文件➜ go-gin-test tree -L 3.├── go.mod├── go.sum├── hello├── mian.go└── routerex └── router.go
编辑router.go
文件
package routereximport "github.com/gin-gonic/gin"func InitRouter(g *gin.Engine) { //第一组api接口 例如:http://localhost:8080/g1/hello1 g1 := g.Group("g1") g1.GET("/hello1", func(c *gin.Context) { c.JSON(200, gin.H{ "msg": "Hello g1", }) }) //第二组api接口 例如:http://localhost:8080/g1/hello1 g2 := g.Group("g2") g2.GET("/hello2", func(c *gin.Context) { c.JSON(200, gin.H{ "msg": "Hello g2", }) })}
编辑main.go
文件
package mainimport ( "example.com/m/v2/routerex" "github.com/gin-gonic/gin")func main() { r := gin.Default() routerex.InitRouter(r) r.Run() // listen and serve on 0.0.0.0:8080 (for windows "localhost:8080")}
同样的执行go build -o hello
编译
执行./hello
启动服务
打开浏览器查看http://localhost:8080/g1/hello1
和http://localhost:8080/g2/hello2
可以看出我们已经拆分了两个不同的api组。并且封装了router的注册方式。
可以尝试联系以上方法
下一期内容预告:
想获取工程的同学可以关注超级英雄吉姆
,在公众号里发送gin
,获取工程。
如果你有更多的想知道的内容或者有什么好的建议,可以在评论里回复,或者关注我的公众号超级英雄吉姆
,在公众号留言,我看到后第一时间回复。
感谢各位的阅读,以上就是“如何使用golang web框架Gin”的内容了,经过本文的学习后,相信大家对如何使用golang web框架Gin这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。
原文链接:https://my.oschina.net/superhreojim/blog/5014355