短短几十行,同时实现: 数据库自动迁移/自动建表 启动一个HTTP接口服务 从URL地址接收分页参数 完整查询 分页查询 表数据量查询 并且极易拓展新的表进行复用,后期拓展新的表查询仅仅需要加个结构体和仓库定义即可。 直接上示例 package main import ( "net/http" "strconv" "github.com/gin-g…
从前端,到后端,除了Gin框架本身,完全不依赖第三方库,极简实现,无比丝滑。 流程梳理 客户端生成一个AES密钥(建议存Cookie里) 服务端生成一对RSA密钥(private.pem+public.pem) 服务端开启一个接口,接收任意请求方法都行,将RSA公钥以Set-Cookie标头直接塞到客户端浏览器Cookie里面(记得以base64传…
省去写一堆重复代码,可以一直添加自定义消息。 进阶版 支持复杂操作 package util import "github.com/gin-gonic/gin" // 响应码与消息映射关系 var customRespone = map[int]string{ 200: "操作成功", 400: "你那边出错了", 401: "没有权限",…
通过记录IP的访问次数到Redis,来限制频繁请求/访问接口。可以动态地在响应内容中显示实际的限制频率。需要注意当前的响应内容message是以分钟为单位作提醒,由于rl.Expires.Minutes()可能会返回一个浮点数,所以使用int()来将其转换为整数。如果需要更精确的时间单位表示(比如秒)还需自行修改。 调用示例 全局使用和单独使用 f…
Gin的路由没有降级什么的,设置了静态文件端点的话后方会自动带*号捕获往后的所有路由,也就是说会直接报panic,因为直接与所有端点冲突了。 方法1 不设置为根路由而是其他自定义的端点,比如下方定义/web端点,./html表示:将项目目录下的名为html的文件夹内部所有文件作为静态资源可访问(需要加后缀) r.Static("/web", "./…
已解决目前网络上其他教程的坑。 安装依赖 go get github.com/swaggo/swag/cmd/swag go get github.com/swaggo go get github.com/swaggo/gin-swagger 初始化gin-swagger swag init 集成到现有项目 对于小白的提醒:下方两个示例文件中,im…