首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
手把手,带你从零封装Gin框架
jassue
创建于2021-10-08
订阅专栏
工欲善其事,必先利其器,在这个专栏中,我会一步步带你将常用的基础服务封装到Gin框架中,制定成Web开发通用模板,方便以后更愉快的CURD。
等 215 人订阅
共12篇文章
创建于2021-10-08
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
手把手,带你从零封装Gin框架(十二):使用 Wire 依赖注入重构
前言 由于之前项目中各个组件都是通过全局变量传递的,随着项目的推进,一大堆全局变量会混成一团,如果一不小心在某个地方对全局变量进行修改将可能引发严重的 panic,便打
手把手,带你从零封装Gin框架(十一):使用文件记录错误日志 & 跨域处理
前言 Gin 框架的日志默认是在控制台输出,本篇将使用 Gin 提供的 RecoveryWithWriter() 方法,封装一个中间件,使用 lumberjack 作为的写入器,将错误日志写入文件中;
手把手,带你从零封装Gin框架(十):初始化多驱动文件系统 & 实现图片上传接口
前言 在项目中有时会需要用到不同驱动的文件系统,为了简化不同驱动间的操作,需要将操作 API 统一,这几天我简单封装了 go-storage 包,支持的驱动有本地存储、七牛云存储(kodo)、阿里云存
手把手,带你从零封装Gin框架(九):Token 续签 & 封装分布式锁
前言 如果将 token 的有效期时间设置过短,到期后用户需要重新登录,过于繁琐且体验感差,这里我将采用服务端刷新 token 的方式来处理。先规定一个时间点,比如在过期前的 2 小时内,如果用户访问
手把手,带你从零封装Gin框架(八):引入Redis & 解决 JWT 注销问题(黑名单策略)
前言 由于 JWT 是无状态的,只能等到它的有效期过了才会失效,服务端无法主动让一个 token 失效,为了解决这个问题,我这里使用黑名单策略来解决 JWT 的注销问题,简单来说就将用户主动注销的 t
手把手,带你从零封装Gin框架(七):实现登录接口 & jwt 鉴权中间件
前言 这一篇将使用 jwt-go 包来完成登录接口,颁发 token 令牌,并编写 jwt 中间件对 token 统一鉴权,避免在各个 controller 重复编写鉴权逻辑 安装 定义配置项 新建
手把手,带你从零封装Gin框架(六):初始化 Validator & 封装 Response & 实现第一个接口
前言 Gin 自带验证器返回的错误信息格式不太友好,本篇将进行调整,实现自定义错误信息,并规范接口返回的数据格式,分别为每种类型的错误定义错误码,前端可以根据对应的错误码实现后续不同的逻辑操作,篇末会
手把手,带你从零封装Gin框架(五):静态资源处理 & 优雅重启服务器
前言 这一篇将对路由进行分组调整,把定义路由的文件集中到同一个目录下,并处理前端项目打包后的静态文件。在 Go 1.8 及以上版本中,内置的 http.Server 提供了 Shutdown() 方法
手把手,带你从零封装Gin框架(四):数据库初始化(GORM)
前言 许多框架都会引入 ORM 模型来表示模型类和数据库表的映射关系,这一篇将使用 gorm 作为 ORM 库,它遵循了 ActiveRecord(模型与数据库表一一对应) 模式,并且提供了强大的功能
手把手,带你从零封装Gin框架(三):日志初始化
前言 本篇来讲一下怎么将日志服务集成到项目中,它也是框架中必不可少的,平时代码调试,线上 Bug 分析都离不开它。这里将使用 zap 作为日志库,一般来说,日志都是需要写入到文件保存的,这也是 zap
手把手,带你从零封装Gin框架(二):配置初始化 & 全局变量
前言 配置文件是每个项目必不可少的部分,用来保存应用基本数据、数据库配置等信息,避免要修改一个配置项需要到处找的尴尬。这里我使用 viper 作为配置管理方案,它支持 JSON、TOML、YAML、H
手把手,带你从零封装Gin框架(一):开篇 & 项目初始化
使用 Go 中最流行的 Web 框架 Gin 来进行二次封装,由于它自由度很高,没办法像 PHP 框架 Laravel 开箱即用,所以就诞生了这个系列的文章,带你一步步将基础服务封装到 Gin 中,方