gin从入门到实践
文章平均质量分 64
流光影下
一个爱编程的技术宅
展开
-
gin中使用限流中间件
限流又称为流量控制(流控),通常是指限制到达系统的并发请求数,本文列举了常见的限流策略,并以gin框架为例演示了如何为项目添加限流组件。原创 2024-01-24 12:54:01 · 1842 阅读 · 0 评论 -
gin中使用swagger生成接口文档
想要使用。原创 2024-01-24 12:51:19 · 922 阅读 · 0 评论 -
gin中使用validator做参数校验
RePassword是我们后端定义的结构体中的字段名,而请求中使用的是字段。如何是错误提示中的字段使用自定义的名称,例如jsontag指定的值呢?只需要在初始化翻译器的时候像下面一样添加一个获取jsontag的自定义方法即可。// InitTrans 初始化翻译器// 修改gin框架中的Validator引擎属性,实现自定制ok {// 注册一个获取json tag的自定义方法return ""})zhT := zh.New() // 中文翻译器。原创 2024-01-23 12:48:24 · 2043 阅读 · 0 评论 -
使用zap接收gin框架默认的日志
是把gin框架本身的日志输出到标准输出(我们本地开发调试时在终端输出的那些日志就是它的功劳),而。这样我们就可以在gin框架中使用我们上面定义好的两个中间件来代替gin框架默认的。注册我们的中间件来使用zap接收gin框架自身的日志,在项目中需要的地方通过使用。是在程序出现panic的时候恢复现场并写入500响应的。的实现,使用我们的日志库来接收gin框架默认输出的日志。最后我们再加入我们项目中常用的日志切割,完整版的。的同时是用到了gin框架内的两个默认中间件。在项目中先从配置文件加载配置信息,再调用。原创 2024-01-23 00:00:58 · 438 阅读 · 0 评论 -
gin如何实现热更新
一种不需要用户关闭应用或重新启动设备就能进行的软件更新技术。它可以快速地在线修复或升级应用程序的错误或功能,从而减少用户的等待时间并提高用户体验。原创 2024-01-22 23:57:52 · 1061 阅读 · 0 评论 -
gin图片验证码
在开发的过程中,我们有些接口为了防止被恶意调用,我们会采用加验证码的方式,例如:发送短信的接口,为了防止短信接口被频繁调用造成损失;注册的接口,为了防止恶意注册。在这里为大家推荐一个验证码的类库,方便大家学习使用。 github.com/dchest/captchaweb端是怎么实现验证码的功能呢?提供一个路由,先在session里写入键值对(k->v),把值写在图片上,然后生成图片,显示在浏览器上面 前端将图片中的内容发送给后后端,后端根据session中的k取得v,比对校原创 2024-01-22 10:08:57 · 653 阅读 · 0 评论 -
如何使用Docker部署Go Web应用
这个镜像运行的是alpine Linux发行版,该发行版的大小很小并且内置了Go,非常适合我们的用例。我们的Go程序编译之后会得到一个可执行的二进制文件,其实在最终的镜像中是不需要go编译器的,也就是说我们只需要一个运行最终二进制文件的容器即可。Docker的最佳实践之一是通过仅保留二进制文件来减小镜像大小,为此,我们将使用一种称为多阶段构建的技术,这意味着我们将通过多个步骤构建镜像。并且我们还定义了在我们运行镜像的时候默认执行的命令。我们接下来要做的是运行我们的镜像,以便它能够处理我们的请求。原创 2024-01-20 17:27:10 · 1148 阅读 · 0 评论 -
gin使用Air实时加载
怎样才能在基于gin框架开发时实现实时加载功能呢?像这种烦恼肯定不会只是你一个人的烦恼,所以我报着肯定有现成轮子的心态开始了全网大搜索。果不其然就在Github上找到了一个工具:Air[1]。彩色日志输出自定义构建或二进制命令支持忽略子目录启动后支持监听新目录更好的构建过程。原创 2024-01-20 17:23:31 · 694 阅读 · 0 评论 -
gin中使用JWT
我们需要定制自己的需求来决定JWT中保存哪些数据,比如我们规定在JWT中要存储username信息,那么我们就定义一个MyClaims// CustomClaims 自定义声明类型 并内嵌jwt.RegisteredClaims// jwt包自带的jwt.RegisteredClaims只包含了官方字段// 假设我们这里需要额外记录一个username字段,所以要自定义结构体// 如果想要保存更多信息,都可以添加到这个结构体中// 可根据需要自行添加字段。原创 2024-01-20 17:21:24 · 830 阅读 · 0 评论 -
gin参数验证
都在代码里自己看吧import ("net/http""reflect"/*对绑定解析到结构体上的参数,自定义验证功能比如我们要对 name 字段做校验,要不能为空,并且不等于 admin ,类似这种需求,就无法 binding 现成的方法需要我们自己验证方法才能实现 官网示例(https://godoc.org/gopkg.in/go-playground/validator.v8#hdr-Custom_Functions)原创 2024-01-20 17:01:14 · 674 阅读 · 0 评论 -
gin会话控制篇 - Cookie和Session
HTTP是无状态协议,服务器不能记录浏览器的访问状态,也就是说服务器不能区分两次请求是否由同一个客户端发出Cookie就是解决HTTP协议无状态的方案之一,中文是小甜饼的意思Cookie实际上就是服务器保存在浏览器上的一段信息。浏览器有了Cookie之后,每次向服务器发送请求时都会同时将该信息发送给服务器,服务器收到请求后,就可以根据该信息处理请求Cookie由服务器创建,并发送给浏览器,最终由浏览器保存2. Cookie的使用测试服务端发送cookie给客户端,客户端请求时携带cookie。原创 2024-01-20 16:59:25 · 699 阅读 · 0 评论 -
gin中间件篇
【代码】gin中间件篇。原创 2024-01-20 16:53:59 · 854 阅读 · 0 评论 -
gin渲染篇
【代码】gin渲染篇。原创 2024-01-20 16:51:38 · 567 阅读 · 0 评论 -
gin数据解析和绑定
【代码】gin数据解析和绑定。原创 2024-01-20 16:45:26 · 780 阅读 · 0 评论 -
gin路由篇
gin文件上传与原生的net/http方法类似,不同在于gin把原生的request封装到c.Request中。gin 框架中采用的路由库是基于httprouter做的。可以通过Context的Param方法来获取API参数。multipart/form-data格式用于文件上传。例如有 root and as at cn com。httproter会将所有路由规则构造一颗前缀树。gin支持Restful风格的API。原创 2024-01-20 16:43:46 · 704 阅读 · 0 评论 -
gin介绍及helloworld
Gin是一个golang的微框架,封装比较优雅,API友好,源码注释比较明确,具有快速灵活,容错方便等特点对于golang而言,web框架的依赖要远比Python,Java之类的要小。自身的net/http足够简单,性能也非常不错借助框架开发,不仅可以省去很多常用的封装带来的时间,也有助于团队的编码风格和形成规范。原创 2024-01-20 16:33:27 · 699 阅读 · 0 评论