首页
首页
沸点
课程
直播
活动
竞赛
商城
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
使用gin封装一个web脚手架
一位不愿意透露姓名的杨先生
创建于2021-07-01
订阅专栏
基于go搭建一个web脚手架,方便开发
等 27 人订阅
共12篇文章
创建于2021-07-01
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
使用gin封装一个web脚手架(十二):缓存模块
先创建一个cache文件夹和cache.go 设计好缓存模块的接口 基于redis实现缓存 基于file实现缓存 先创建storage文件夹 使用工厂模式来切换驱动 调用 源代码:https://gi
使用gin封装一个web脚手架(十一):分布式锁补充
我们先来看一下这段代码 在上面的控制器中,我们申请了一个过期时间为1s的锁,拿到锁之后开始进行业务操作,由于错误的判断,业务处理的时间超过的锁的过期时间。在这个时刻,有其他请求进来了,同样拿到了锁,那
使用gin封装一个web脚手架(十):分布式锁(下)
上一篇已经实现了获取锁和解锁的功能,但是获取锁是非阻塞的,也就是说获取锁失败后就立马返回失败结果了。在一些场景下,我们需要的是保持某一任务只有一个请求在执行,其他的请求在后面排队。就像公司只有一个厕所
使用gin封装一个web脚手架(九):分布式锁(上)
在某些场景下,我们需要对某个请求和任务做加锁处理,保证它只被执行一次,当任务处理完毕后才可以处理下一个任务。如调用支付、发送邮件、增减库存等。 接下来我们将用redis实现一个分布式锁 在compon
使用gin封装一个web脚手架(八):限流器
日常开发中,对于某些接口有请求频率的限制。比如登录的接口、发送短信的接口、秒杀商品的接口等等。 官方的golang.org/x/time/rate包中实现了令牌桶的算法,我们看一下应用。 上方的限流器
使用gin封装一个web脚手架(七):实现session(下)
接下来就是实现session的几个函数了,分别是set、get、remove 先实现set,在context.go添加 在index控制器中调用 在redis中查看 设置成功 接下来是get和remo
使用gin封装一个web脚手架(六):实现session(中)
设计好session的数据结构后开始存放初始session值 先在context.go中定义好session的结构体 接下来在session中间件中存储初始化数据 运行浏览器后,在redis中出现 问
使用gin封装一个web脚手架(五):实现session(上)
上一篇中我们改装了中间件,现在可以根据中间件实现session功能了。实现之前要先创建一个redis连接,因为我们的session数据是存放在redis里面的 这里使用go-redis拓展包 在项目中
使用gin封装一个web脚手架(四):改装中间件
上一篇文章中我们改装了路由组 但是这样写有一个问题,无法使用中间件了,我们需要完善一下,让其支持中间件并且中间件的context是由我们现实的context。 先在context中定义HandlerF
使用gin封装一个web脚手架(三):改装路由组
先看一下这个路由 这种写法的路由组层级关系看的不是很清楚,等后期路由多起来绝对是一个头疼的事情 理想的模式应该是这样 这要实现一个router模块 在routes文件夹下添加一个router.go文件
使用gin封装一个web脚手架(二):重写gin.Context
上一篇文章拆分了控制器和路由,下面看一下这个问题 结果 如果我只要host不带端口就需要这样做 这样实现一点都不优雅,就算封装成一个函数每次还要调用,比较好的方式是直接从context中获取,例如:c
使用gin封装一个web脚手架(一):控制器和路由
创建一个go项目,名称为myGin go.mod文件为 安装gin 创建一个main.go文件 创建routes文件夹和controller 项目结构为 在controller下创建一个Index控制