Gin(一):Hello Gin
更多文章 狂点 -> ISLAND
什么是 Gin
Gin 是一个用 Golang 写的 http web 框架。
这是来自 Gin Github 上的描述。
开发环境
- GoLand 2019.2 EAP
- GoLang 1.11.5
- 采用 Go Modules 进行管理
快速入门
用 GoLand
新建项目的时候,我们选择 Go Modules(vgo)
,填写我们的项目地址和项目名称,我们命名为 GinHello
。

点击 Create
,此时 Goland
为我们生成了项目目录,Go
项目的目录永远是那么的简单,比 Java
的 Maven
或者 Gradle
生成的项目目录简单多了。
GinHello | |-go.mod
对,就是一个文件 ,一个 Go module
文件。go mod
是 Go
官方引入的一个依赖管理工具。
添加依赖
通过 go mod
文件进行依赖的。
require github.com/gin-gonic/gin v1.4.0
我们把上面的依赖进行添加到 go module
中, goLand
会自动帮我们进行依赖的下载和管理。
Hello Gin
当完成依赖的添加,就可以开始写代码了。
新建一个 main.go
文件。
package main import ( "github.com/gin-gonic/gin" ) func main() { router := gin.Default() router.Run() }
Gin
只需要两行代码就可以把我们的服务跑起来。
我们只要点击运行,项目便会启动一个 8080
端口,打开浏览器 localhost:8080
我们便可以看到页面上提示出 404 page not found
,这是因为我们的根路由上并没有返回任何结果。同时我们可以在控制台上看到一些打印信息,其中就包括我们刚刚访问根路由的端口。
产生接口
项目已经启动了,那么如何返回一个接口呢?
通过 router
的 Handle
进行配置我们返回的参数。
// 省略代码 // 添加 Get 请求路由 r.GET("/", func(context *gin.Context) { context.String(http.StatusOK, "hello gin") }) // 省略代码
此时我们重启项目,重新访问页面 localhost:808
,此刻的页面上已经显示了 hello gin
。
同样,我们还可以进行 POST
,PUT
,DELETE
等请求方式。
单元测试
单元测试是项目不能缺少的模块,也是保障项目可以正常运行的重要依赖。下面就对 Gin 进行单元测试。
为了方便单元测试,我们首先要对我们的项目进行一下抽取。
新建立一个文件夹叫做 initRouter
建立 go
文件 initRouter.go
package initRouter import ( "github.com/gin-gonic/gin" "net/http" ) func SetupRouter() *gin.Engine { router := gin.Default() // 添加 Get 请求路由 router.GET("/", func(context *gin.Context) { context.String(http.StatusOK, "hello gin") }) return router }
同时修改 main.go
package main import ( "GinHello/initRouter" ) func main() { router := initRouter.SetupRouter() _ = router.Run() }
完成了项目测试的初步建立。
建立 test
目录, golang
的单元测试都是以 _test
结尾,建立 index_test.go
文件。
package test import ( "GinHello/initRouter" "github.com/stretchr/testify/assert" "net/http" "net/http/httptest" "testing" ) func TestIndexGetRouter(t *testing.T) { router := initRouter.SetupRouter() w := httptest.NewRecorder() req, _ := http.NewRequest(http.MethodGet, "/", nil) router.ServeHTTP(w, req) assert.Equal(t, http.StatusOK, w.Code) assert.Equal(t, "hello gin", w.Body.String()) }
通过 assert
进行断言,来判断返回状态码和返回值是否与代码中的值一致。
此时的项目目录为:
GinHello | |-initRouter | |-initRouter.go | |-test | |-index_test.go | |-main.go |-go.mod |-go.sum
运行单元测试,控制台打印出单元测试结果。
--- PASS: TestIndexGetRouter (0.02s)
PASS
总结
通过简单的搭建一个 Gin 项目,可以看到 Go 语言搭建一个 Http 服务器很简单,也很方便,零配置即可完成项目并运行起来。
本章节代码
本文来自博客园,作者:youngxhui,转载请注明原文链接:https://www.cnblogs.com/youngxhui/p/17730485.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南