文章目录
参考:
看云 Gin中文文档
Gin官网
Gin Github
B站:Gin教程_Golang框架Gin入门实战教程-更新中
李文周-Gin框架介绍及使用
李文周-validator库参数校验若干实用技巧
介绍:
一、介绍
Gin是一个Go编写的轻量级的http web框架,运行速度非常快。Gin最擅长的就是Api接口的高并发,如果的项目不大,业务相对简单,这个时候我们也推荐使用Gin。当接口的性能遭到较大挑战的时候,可以考虑使用Gin重写接口。
二、开发准备
1、创建项目
go mod init 项目名称
#整理mod中的模块(没有的话添加,没用到的mod删除):go mod tidy
2、下载并安装Gin
go get -u github.com/gin-gonic/gin
3、程序热加载
Gin官方没有提供热加载工具,只能借助第三方的工具来实现
go get github.com/pilu/fresh
4、代码分层划分
│
routers 路由
│
controller 控制器
│
logic (或service 业务逻辑层)
│
models 模型层(模型、模型相关的增、删、改、查操作)
|
static 静态文件
│
templates 模板文件
│
dao(database access object) 数据库交互层
│
go.mode 项目依赖信息
│
main.go 入口文件
三、框架语法
1、第一个Gin示例
package main
import (
"github.com/gin-gonic/gin"
)
func main() {
// 创建一个默认的路由引擎
r := gin.Default()
// GET:请求方式;/hello:请求的路径
// 当客户端以GET方法请求/hello路径时,会执行后面的匿名函数
r.GET("/hello", func(c *gin.Context) {
// c.JSON:返回JSON格式的数据
c.JSON(200, gin.H{
"message": "Hello world!",
})
})
// 启动HTTP服务,默认在0.0.0.0:8080启动服务
r.Run() // r.Run(":8080")
}
2、获取请求参数
Get请求参数获取:
Post请求参数获取:
获取URL中的参数:
ShouldBind 参数绑定:
3、上传文件
参考:https://www.liwenzhou.com/posts/Go/Gin_framework/#autoid-0-3-0
4、重定向
5、路由
6、中间件
7、GORM
参考:gorm 小记
四、
1、GIN文件上传与返回
参考:GIN文件上传与返回
(1)下载文件
func main() {
r := gin.Default() //启动gin路由,携带基础中间件启动 logger and recovery (crash-free) 中间件
r.POST("testUpload", func(c *gin.Context) {
file, _ := c.FormFile("file")
in, _ := file.Open()
defer in.Close()
out, _ := os.Create("./"+file.Filename)
defer out.Close()
io.Copy(out, in)
c.Writer.Header().Add("Content-Disposition", fmt.Sprintf("attachment; filename=%s", file.Filename))
c.File("./"+file.Filename)
})
r.Run(":1010") // listen and serve on 0.0.0.0:8080
}