Gin框架基础

参考:

看云 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
}

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值