Golang
文章平均质量分 70
Golang
Fisher3652
这个作者很懒,什么都没留下…
展开
-
go1.18 泛型
目录1. 使用场景2. 代码实例1. 使用场景参考https://go.dev/blog/when-generics除了参数类型之外,写了很多完全重复的代码2. 代码实例参考https://go.dev/doc/tutorial/genericspackage mainimport ( "fmt")type Number interface { int | int32 | int64 | float32 | float64}func addNumber[原创 2022-05-18 17:54:59 · 155 阅读 · 1 评论 -
Gin:Session
目录1. 安装 session 包2. 基于 Cookie 存储 Session3. 启动服务4. 基于 Redis 存储 SessionGin 官方没有给我们提供 Session 相关的文档,这个时候我们可以使用第三方的 Session 中间件来实现 https://github.com/gin-contrib/sessionsgin-contrib/sessions 中间件支持的存储引擎:cookie、memstore、redis、memcached、mongodb1. 安装 session原创 2022-02-09 21:26:40 · 1209 阅读 · 0 评论 -
Gin:Cookie及二级域名共享Cookie
目录1. 设置 Cookie2. 获取 Cookie3. main.go4. 启动服务5. 二级域名共享 Cookie1. 设置 Cookiec.SetCookie("username", "fisher3652", 3600, "/", "localhost", false, true)第一个参数 key第二个参数 value第三个参数 过期时间,单位是秒,如果不想设置存活时间,可以传 nil第四个参数 cookie 的路径第五个参数 Domain 作用域,本地调试配置成 localh原创 2022-02-09 20:17:47 · 1115 阅读 · 0 评论 -
Gin:文件上传
目录1. 单文件上传2. 多文件上传3. 根据上传时间保存4. 配置路由5. 启动服务1. 单文件上传func uploadFile(c *gin.Context) { file, err := c.FormFile("file") if err == nil { dst := path.Join("./static", file.Filename) saveErr := c.SaveUploadedFile(file, dst) if saveErr == nil { c.JSO原创 2022-02-08 21:21:52 · 3149 阅读 · 0 评论 -
Gin:中间件
目录1. 添加中间件2. 启动服务3. 路由分组中间件4. 使用 goroutineGin 框架允许开发者在处理请求的过程中,加入钩子(Hook)函数。这个钩子函数就叫中间件,中间件适合处理一些公共的业务逻辑,比如登录认证、权限校验、数据分页、记录日志、耗时统计等。简单来说就是在匹配路由前和匹配路由完成后执行的一系列操作。1. 添加中间件这里先引入路由中间件和全局中间件,同时在中间件和控制器之间进行数据传递Gin 中的中间件必须是一个 gin.HandlerFunc 类型,配置路由的时候可以传原创 2022-02-08 19:14:10 · 1125 阅读 · 0 评论 -
Gin:自定义控制器及控制器继承
目录1. 创建baseController2. 创建控制器3. 配置路由4. 配置main.go5. 启动服务1. 创建baseController创建controllers文件夹和baseController.go文件,包含Success方法和Error方法package controllersimport ( "net/http" "github.com/gin-gonic/gin")type BaseController struct{}func (con BaseCo原创 2022-02-07 20:39:41 · 1060 阅读 · 0 评论 -
Gin:路由抽离与分组
目录1. 对路由进行分组2. 配置 main.go3. 启动服务1. 对路由进行分组这里使用2组路由,user和department新建routers文件夹,创建userRouters.go和departmentRouters.gouserRouterspackage routersimport ( "net/http" "github.com/gin-gonic/gin")func UserRoutersInit(router *gin.Engine) { user原创 2022-02-07 18:20:17 · 997 阅读 · 0 评论 -
Gin:路由配置和获取参数
目录1. 路由配置2. 获取get请求传值3. 获取get请求,path传值4. 获取post请求传值5. 获取post form请求,结构体传值6. 获取post json请求,结构体传值1. 路由配置package mainimport ( "fmt" "net/http" "github.com/gin-gonic/gin")type UserInfo struct { Username string `form:"username" json:"username" bindin原创 2022-02-04 22:03:56 · 1625 阅读 · 0 评论 -
VSCode 搭建Gin
目录1. 创建项目2. 下载并安装 gin3. 新建main.go4. 运行项目Gin 的官网:https://gin-gonic.com/zh-cn/Gin Github 地址:https://github.com/gin-gonic/gin安装 Gin 软件包前,需要先安装 Go 并设置 Go 工作区,并且需要使用Go 1.13 及以上版本,这里使用的是 1.17.51. 创建项目创建文件夹用vscode打开文件夹使用go mod管理项目,并生成go.mod文件go m原创 2022-02-02 14:08:55 · 2013 阅读 · 0 评论