Gin教程–Gin初识(一)
一、Gin介绍
1.1 什么是Gin?
Gin是一个使用Go语言开发的Web框架。
1.2 Gin有什么特点?
-
快速
基于Radix树的路由,小内存占用。没有反射。可预测的API性能。 -
支持中间件
传入的HTTP请求可以由一系列中间件和最终操作来处理。 -
Crash处理
Gin可以catch一个发生在HTTP请求中的panic并recover它。这样,你的服务器将始终可用。 -
JSON验证
Gin可以解析并验证请求的JSON。 -
路由组
Gin帮助您更好地组织您的路由。此外,路由分组可以无限嵌套而不降低性能。 -
错误管理
Gin提供了一种方便的方法来收集HTTP请求期间发生的所有错误。最终,中间件可以将它们写入日志文件,数据库并通过网络发送。 -
内置渲染
Gin为JSON,XML和HTML渲染提供了易于使用的API。 -
可扩展性
新建一个中间件非常简单。
1.3 Gin可以做什么?
- 开发API
- 直接在框架中
二、开发环境
序号 | 名称 | 内容 | 版本号 | 备注 |
---|---|---|---|---|
1 | window | 系统 | V10 | |
2 | git | 代码管理工具 | V2.37.0 | |
3 | golang | 语言环境 | V1.16.3 | |
4 | gin | v1.9.0 |
三、开始项目
3.1 创建一个项目并初始化Git和Go Mod
# 初始化git仓库
git init
# 初始化go mod
go mod init
# 添加go的gin包
go get github.com/gin-gonic/gin
添加.gitignore文件
.idea
.env
vendor/
build/
runtime/
3.2 开始创建项目子文件夹
app
开发使用的文件夹,app下创建控制器文件夹(controllers)、模型文件夹(models)、帮助文件夹(helpers)、中间件文件夹(middlewares)、路由文件夹(routers)、脚本文件夹(script)
build
打包文件夹
cmd
命令行文件夹
config
配置文件存储
public
公共资源存储,一般是存放图片、csv、Excel等文件
runtime
运行文件夹,存储一些log等
vendor
存储引入的包
3.3 添加第一个Golang主文件
项目根目录下创建main.go文件
package main
import (
"github.com/gin-gonic/gin"
)
func setupRouter() *gin.Engine {
r := gin.Default()
r.GET("/ping", func(c *gin.Context) {
c.String(200, "pong")
})
return r
}
func main() {
r := setupRouter()
r.Run(":8080")
}
3.4 运行程序
go run main.go
3.5 测试
创建测试用例
package main
import (
"net/http"
"net/http/httptest"
"testing"
"github.com/stretchr/testify/assert"
)
func TestPingRoute(t *testing.T) {
router := setupRouter()
w := httptest.NewRecorder()
req, _ := http.NewRequest("GET", "/ping", nil)
router.ServeHTTP(w, req)
assert.Equal(t, 200, w.Code)
assert.Equal(t, "pong", w.Body.String())
}
3.6 项目打包
# Windows
go build -o build/ZhaoGodService.exe main.go
# Linux
go env -w CGO_ENABLED=0 GOOS=linux GOARCH=amd64
go build -o build/ZhaoGodService main.go
更多内容请去公众号【老罗分享】获取