千家信息网

如何使用golang web框架Gin

发表于:2025-11-11 作者:千家信息网编辑
千家信息网最后更新 2025年11月11日,这篇文章主要讲解了"如何使用golang web框架Gin",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"如何使用golang web框架Gin"吧!G
千家信息网最后更新 2025年11月11日如何使用golang web框架Gin

这篇文章主要讲解了"如何使用golang web框架Gin",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"如何使用golang web框架Gin"吧!

Gin是用Go(Golang)编写的Web框架。

准备

  • 首先需要安装Go(需要1.12+版本)

1. 安装

  • github地址 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/gin
go: github.com/gin-gonic/gin upgrade => v1.6.3
go: gopkg.in/yaml.v2 upgrade => v2.4.0
go: github.com/golang/protobuf upgrade => v1.5.2
go: github.com/modern-go/reflect2 upgrade => v1.0.1
go: github.com/modern-go/concurrent upgrade => v0.0.0-20180306012644-bacd9c7ef1dd
go: github.com/ugorji/go/codec upgrade => v1.2.5
go: golang.org/x/sys upgrade => v0.0.0-20210403161142-5e06dd20ab57
go: github.com/go-playground/validator/v10 upgrade => v10.4.2
go: github.com/json-iterator/go upgrade => v1.1.10
go: github.com/leodido/go-urn upgrade => v1.2.1
go: downloading github.com/golang/protobuf v1.5.2
go: downloading golang.org/x/sys v0.0.0-20210403161142-5e06dd20ab57
go: downloading github.com/go-playground/validator/v10 v10.4.2
go: downloading github.com/ugorji/go v1.2.5
go: downloading google.golang.org/protobuf v1.26.0
go: downloading github.com/ugorji/go/codec v1.2.5
go: golang.org/x/crypto upgrade => v0.0.0-20210322153248-0c34fe9e7dc2
go: google.golang.org/protobuf upgrade => v1.26.0
go: downloading golang.org/x/crypto v0.0.0-20210322153248-0c34fe9e7dc2
  • 如果 go get长时间未响应或者出现超时建议使用 http://goproxy.cn/配置国内代理

2. Hello World

现在我们来编写我们的第一个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 main

import "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 ls
go.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

image.png

至此,我们已经完成第一个web服务的构建

3. Router的分组和封装

在实际的生产活动中,业务接口通常需要拆分成很多,例如/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 routerex

import "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 main

import (
"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/hello1http://localhost:8080/g2/hello2

image.png
image.png

可以看出我们已经拆分了两个不同的api组。并且封装了router的注册方式。

可以尝试联系以上方法

下一期内容预告:

  • gin的中间件的使用
  • post和get接口不同的获取参数方式
  • ...

想获取工程的同学可以关注超级英雄吉姆,在公众号里发送gin,获取工程。

如果你有更多的想知道的内容或者有什么好的建议,可以在评论里回复,或者关注我的公众号超级英雄吉姆,在公众号留言,我看到后第一时间回复。

感谢各位的阅读,以上就是"如何使用golang web框架Gin"的内容了,经过本文的学习后,相信大家对如何使用golang web框架Gin这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!

文件 框架 内容 接口 公众 工程 目录 学习 服务 不同 建议 方式 更多 浏览器 英雄 面的 吉姆 封装 浏览 接下来 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 专科有网络技术专业吗 大学毕业做网络安全 新余高性价比服务器哪家好点 为什么厂商支持多跳网络技术 mssql数据库 日志 软件开发服务分期确认收入 乡镇网络安全综合治理工作总结 青少年如何防范网络安全危害 百度网盘 本地下载 服务器出错 一款软件开发的资本结构模板 沁水县网络安全教育 软件开发的大学课程 2021成都国家网络安全宣传周 中信银行招聘软件开发 arcmap怎样建立数据库 上海单据外贸软件开发公司 网络安全制度的内容包括 榆树通用网络技术参考价格 大连数据库数据分析 腾讯阿里京东百度的服务器 宝坻区媒体网络技术诚信合作 平板电脑服务器不稳定是什么原因 数据库中exists 重庆电商软件开发靠谱吗 服务器不支持撤回怎么设置 学数据库还是软件编程好 大连数据库数据分析 广东服务器阵列卡芯片云主机 涉密专用服务器安全保密授权 数据库技术及应用a卷
0