Gin
如何基于 Gin 封装出属于自己 Web 框架?
思路 在基于 Gin 封装出属于自己的 Web 框架前,你需要先了解 Gin 的基本用法和设计理念。 然后,你可以通过以下步骤来封装自己的 Web 框架: 封装路由:Gin 的路由是通过 HTTP 方法和 URL 路径进行匹配的,你可以根据自己的需求,封装出符合应用的业务需求的路由。你可以考虑将路由 ......
gin学习笔记(二)—— 获取参数和文件上传
获取参数和文件上传 获取参数 url传参 在我们使用网页时,我们有时会看到地址栏上带有 ?后面还跟着一些数据,这就是 url 传参,?后面携带的就是参数。例如:用必应搜索 what is a url,地址栏为 https://cn.bing.com/search?q=what is a url,携带 ......
gin学习笔记(一)—— 了解gin
了解gin Web编程基础 客户端和服务端 HTTP 客户端和服务器之间的请求响应一般都是使用 HTTP/HTTPS 协议,它规定了如何从网站服务器传输超文本到本地浏览器。 HTTP请求 当你在网页上点击一个链接、提交一个表单、或者进行一次搜索的时候,浏览器会发送一个 HTTP 请求给服务器。HTT ......
Go+Gin+xorm+MySql实现增删改查
一、概述 承接上一篇(ps:原生增删改查),本篇使用xorm实现增删改查。 之所以要使用xrom是因为xrom可以极大的缩小操作数据库的成本。 使用rom之前需要导入响应的包 go get github.com/go-xorm/xorm #安装xorm go get xorm.io/core go ......
gin生成结构体数据
1.先声明个最深层结构体 type PictureList struct { Id int `json:id"` Class int `json:class"` Name string `json:name"` Cover_img string `json:cover_img"` Url strin ......
Gin CORS 跨域请求资源共享与中间件
Gin CORS 跨域请求资源共享与中间件 目录Gin CORS 跨域请求资源共享与中间件一、同源策略1.1 什么是浏览器的同源策略?1.2 同源策略判依据1.3 跨域问题三种解决方案二、CORS:跨域资源共享简介(后端技术)三 CORS基本流程1.CORS请求分类2.基本流程四、CORS两种请求详 ......
go的gin框架学习以及初始化---安装篇
1. 编辑器使用 vscode 设置中文,加载go语言相关插件 https://code.visualstudio.com/ 2.下载go运行环境 https://go.dev/dl/ 3.新建项目目录 bin pkg src(项目目录可存放多个项目) 每个项目文件下必须要有 go.mod 文件 4 ......
Go Gin+MySQL实现增删改查
一、概述 使用Gin框架+MySQL数据库实现增删改查(原生sql) 实现步骤: 1.导入Gin框架 go get -u github.com/gin-gonic/gin 2.引入MySQL驱动 go get -u github.com/go-sql-driver/mysql 3.注册Gin路由 / ......
Go 引入Gin框架并实现Get请求
一、概述 学习一下Go语言,主要为了观察一下其语言特性。了解一下其与Java/Kotlin/C/C++/Python其语言的区别 二、搭建步骤 1.使用LiteIDE新建目录并创建一个.go文件 2.引入Gin库 a.创建mod文件,并下载导入gin go mod init go_workspace ......
Gin框架初体验__Goland操作
前提:搭建好Golang环境 首先新建project,Goland会自动生成go.mod文件。 下载并安装Gin框架,并将其添加到你的项目的Go模块中(引入Gin框架依赖至本地) go get -u github.com/gin-gonic/gin 在这一步,我阻碍了将近一个下午|||^_^,由于类 ......
Gin 项目引入热加载
一、什么是热加载 热加载(Hot Reloading)是指在应用程序运行时,对代码进行修改后,系统能够自动重新加载这些修改,而无需停止和重新启动整个应用程序。这使得开发者能够在不中断应用程序运行的情况下进行代码的调试和修改。 热加载的主要目的是提高开发效率,减少开发过程中的重复操作,以便更快地验证和 ......
Gin 路由注册与请求参数获取
Gin 路由注册与请求参数获取 一、Web应用开发的两种模式 1.前后端不分离模式 也叫前后端混合开发模式, 需要后端写模板语言(dtl), 返回的是HTML页面 浏览器 : 请求动态页面 后端 : 返回HTML 优点:可以直接渲染页面, 方便处理请求数据 缺点:耦合度非常高, 不方便扩展 2.前后 ......
Gin 框架介绍与快速入门
Gin 框架介绍与快速入门 目录Gin 框架介绍与快速入门一、Gin框架介绍1. 快速和轻量级2. 路由和中间件3. JSON解析4. 支持插件5. Gin相关文档二、基本使用1.安装2.导入3.第一个Gin 应用三、应用举例四、Gin 入门核心1.gin.Engine2.gin.Context 一 ......
Gin中使用jwt-go实现JWT鉴权登陆
在Go语言中,JWT(JSON Web Token)鉴权可以使用第三方库来实现,比如jwt-go。 库的介绍和使用可见文档:jwt package - github.com/golang-jwt/jwt/v5 - Go Packages 创建JWT令牌 在服务器中,我们可以使用以下代码创建JWT令牌 ......
gin 中间件流程控制:Next()、 Abort()
Next() 源码注释:Next应该只在中间件内部使用。它执行调用处理程序内部链中的挂起处理程序。 通俗的说,就是中间件放行,当一个中间件代码执行到Next(),会先执行它之后的函数,最后再来执行完本函数。 package main import ( "fmt" "github.com/gin-go ......
gin框架是如何处理panic
保护gin构建的web app不panic的方式,简单来说: 1)主程中的panic本身是会被gin拦截的2)协程中的panic需要手动使用defer和recover进行保护 情景在用gin构建项目,运行web app并上线了之后,或许有一些请求会经过业务,在特定的情况下出发会触发golang中的p ......
11道Gin基础高频题整理(附答案背诵版)
Gin框架如何文件上传 ? Gin框架中实现文件上传的基本步骤可以分为以下几个部分: 设置路由:首先,在Gin框架中,你需要为文件上传功能设置一个路由。这个路由会指向一个处理函数,用于处理上传的文件。 router := gin.Default() router.POST("/upload", up ......
go gin 基于令牌桶实现的接口限流
令牌桶实现接口限流 简单有效. 但是不一定对得上我现在需要使用的业务. 新建 main.go package main import ( "github.com/gin-gonic/gin" "sync" "time" ) // 令牌桶demo func main() { r := gin.Defa ......
golang 生成excel文件,或者结合gin框架返回文件流
package main import ( "errors" "fmt" "github.com/gin-gonic/gin" "github.com/xuri/excelize/v2" ) func ReadExcel(file string, sheet string) ([][]string, ......
gin使用Logger中间件时不显示特定 api path的访问日志
gin使用默认Logger跳过某些api path 一般初始化一个gin.Engine会使用 gin.Default 将你需要过滤的api path添加到Logger的config中: r := gin.New() r.Use(gin.LoggerWithConfig(gin.LoggerConfi ......
处理golang gin框架下载文件时中文文件名乱码问题
func Download(c *gin.Context) { c.Writer.WriteHeader(http.StatusOK) //设置文件类型 c.Header("Content-Type", "application/vnd.ms-excel;charset=utf8") // Path ......
Go 自动生成代码工具二 (在proto文件中定义http的接口,并自动生成gin的接口工具)
一、需求分析 在和前端对接过程中,需要后端维护一份接口文档,对于这份文档的维护在实际工作中会有一系列的问题,例如参数个数、参数类型、返回类型等。 主要还是后期需要一直维护,如果改了接口,忘记维护文档就会导致前端调用异常。 但是当使用 protobuf定义好了接口,微服务相互间调用,一般不会出现这类问 ......
Golang Gin Session & Cookie
一. Cookie 1 func (con UserControl) Index(c *gin.Context) { 2 /*** 设置Cookie 3 func (c *Context) SetCookie(name, value string, maxAge int, path, domain ......
Golang Gin 中间件
一.中间件 1 package main 2 3 import ( 4 "fmt" 5 "gin01/middlewares" 6 "text/template" 7 "time" 8 9 "github.com/gin-gonic/gin" 10 ) 11 12 /*** 13 中间件的注意事项: ......
Golang Gin 请求参数的获取值 & 路由分组 & 控制器继承
一. 请求参数的获取值 动态路由 1 type User struct { 2 Username string `form:"username" json:"username"` 3 Password string `form:"password" json:"password"` 4 Age in ......
Golang Gin 模板基本使用
一, 模板定义,模板变量,条件判断,模板函数,模板命名 1 {{define "default/index.html"}} 2 <!DOCTYPE html> 3 <html lang="en"> 4 5 <head> 6 <meta charset="UTF-8"> 7 <meta name="v ......
Golang Gin 初识
1.Gin框架搭建,初识 1 // main.go 2 package main 3 4 /*** 5 Gin入门: 6 文档: https://gin-gonic.com/zh-cn/docs/quickstart/ 7 热加载: 8 文档: https://github.com/cosmtrek ......
【gin】项目
@目录写在前面blogs 项目目录config文件配置项 .ymlglobalmiddlewaremodelsroutersruntimeutils参考资料 写在前面 相关博文 个人博客首页 免责声明:仅供学习交流使用!开源框架可能存在的风险和相关后果将完全由用户自行承担,本人不承担任何法律责任。 ......
gin-vue-admin 接口错误Error: Request failed with status code 500
本地运行以后登录出现: 控制台检查发现是请求getMenu出现500错误,并且后端出现"Error 1071 (42000): Specified key was too long; max key length is 1000 bytes"错误,那就是数据库casbin_rule的表引擎不是Inn ......
Gin+Vue+微服务打造秒杀商城,打造高并发抢购平台
gin+vue实战 后端: 用户管理 用户列表 登录/登出 商品管理 商品的增上改查 活动管理 商品关联 成功率 redis队列,不成功的回到队列继续,成功的从队列删除 结束难点: 代码和部署完全隔离 怎么避免雪崩 根据后端承载能力,进行限流和过载保护 使用redis承载海量QPS mysql性能瓶 ......