gin框架中间件
1. Gin框架中间件
Gin框架中间件
A. Gin框架允许在请求处理过程中,加入用户自己的钩子函数。这个钩子函数就叫中间件
B. 因此,可以使用中间件处理一些公共业务逻辑,比如耗时统计,日志打印,登陆校验.
2. 编写自己的中间件
- package main
- import (
- "log"
- "time"
- "net/http"
- "github.com/gin-gonic/gin"
- )
- func StatCost() gin.HandlerFunc {
- return func(c *gin.Context) {
- t := time.Now()
- //可以设置一些公共参数
- c.Set("example", "")
- //等其他中间件先执行
- c.Next()
- //获取耗时
- latency := time.Since(t)
- log.Print(latency)
- }
- }
- func main() {
- r := gin.New()
- r.Use(StatCost())
- r.GET("/test", func(c *gin.Context) {
- example := c.MustGet("example").(string)
- // it would print: "12345"
- log.Println(example)
- c.JSON(http.StatusOK, gin.H{
- "message": "success",
- })
- })
- // Listen and serve on 0.0.0.0:8080
- r.Run(":8080")
- }
gin框架中间件的更多相关文章
- gin框架中间件解决跨域问题
http://www.niu12.com/article/45// 初始化routerrouter := gin.New() router.Use(gin.Logger()) router.Use(g ...
- Go语言基础之20--web编程框架之Gin框架
一.Gin框架介绍 1.1 简介 A. 基于httprouter开发的web框架. http://github.com/julienschmidt/httprouter B. 提供Martini风格的 ...
- 基于gin框架和jwt-go中间件实现小程序用户登陆和token验证
本文核心内容是利用jwt-go中间件来开发golang webapi用户登陆模块的token下发和验证,小程序登陆功能只是一个切入点,这套逻辑同样适用于其他客户端的登陆处理. 小程序登陆逻辑 小程序的 ...
- Gin框架系列03:换个姿势理解中间件
什么是中间件 中间件,英译middleware,顾名思义,放在中间的物件,那么放在谁中间呢?本来,客户端可以直接请求到服务端接口. 现在,中间件横插一脚,它能在请求到达接口之前拦截请求,做一些特殊处理 ...
- gin框架使用【7.中间件使用】
在 gin中,通过默认的函数,构建一个实现了带默认中间件的 *Engine. r := gin.Default() 默认绑定了Logger和Recovery中间件,帮助我们进行日志输出和错误处理. f ...
- gin框架使用注意事项
gin框架使用注意事项 本文就说下这段时间我在使用gin框架过程中遇到的问题和要注意的事情. 错误处理请求返回要使用c.Abort,不要只是return 当在controller中进行错误处理的时候, ...
- Gin框架源码解析
Gin框架源码解析 Gin框架是golang的一个常用的web框架,最近一个项目中需要使用到它,所以对这个框架进行了学习.gin包非常短小精悍,不过主要包含的路由,中间件,日志都有了.我们可以追着代码 ...
- gin框架学习手册
前言 gin框架是go语言的一个框架,框架的github地址是:https://github.com/gin-gonic/gin 转载本文,请标注原文地址:https://www.cnblogs.co ...
- go的gin框架从请求中获取参数的方法
前言: go语言的gin框架go里面比较好的一个web框架, github的start数超过了18000.可见此框架的可信度 如何获取请求中的参数 假如有这么一个请求: POST /post/te ...
随机推荐
- Android Matrix理论与应用详解
转:http://zensheno.blog.51cto.com/2712776/513652 Matrix学习——基础知识 以前在线性代数中学习了矩阵,对矩阵的基本运算有一些了解,前段时间在使用GD ...
- 同步异步,异步回调,线程队列,线程时间Event
同步异步-阻塞非阻塞 阻塞-非阻塞 指的是程序的运行状态 阻塞:当程序执行过程中遇到了IO操作,在执行IO操作时,程序无法继续执行其他代码,称为阻塞. 非阻塞:程序在正常运行没有遇到IO操作,或者通过 ...
- docker-compose (单机版的容器编排工具)
类似于ansible剧本 yml 格式 要使用这个编排工具,必须先安装 yum install -y docker-compose cd wordpress/ vi docker-compose.ym ...
- 第十四篇:PL/SQL Developer Oracle配置和必知基础
1.一般在本地使用PL/SQL 第三方工具操作Oracle数据库,首先你的机器上得有oracle的客户端client,下一个就行了,很小2.首先找到你下载的oracle的客户端的包,找到tnsname ...
- JVM 内存模型及垃圾回收
java内存模型 根据 JVM 规范,JVM 内存共分为虚拟机栈.堆.方法区.程序计数器.本地方法栈五个部分. 程序计数器:程序计数器是指CPU中的寄存器,它保存的是程序当前执行的指令的地址(也可以说 ...
- 笔记:Python操作sql
python操作mysql步骤: 创建connect连接 conn = connect(host='127.0.0.1', port=3306, user='root', password='1234 ...
- 2、docker镜像管理
Docker镜像管理 镜像是Docker容器的基础,想运行一个Docker容器就需要有镜像.我们上面已经学会了使用search搜索镜像.那么这个镜像是怎么创建的呢? 创建镜像 镜像的创建有以下几种方法 ...
- React在componentWillMount中请求接口数据结束后再执行render
1.在getInitialState中初始化isloading,初始值false getInitialState() { return { editionid: '', isloading:false ...
- CSS - 选择器相关
1. 标签选择器 /* 标签选择器 : 会将样式作用在当前网页所有的指定标签上 标签名 { 样式名1: 样式值1; 样式名2: 样式值2; ...... } */ table { width: 300 ...
- springBoot_JPA和lombok
一.JPA 特点:JPA可以根据方法名自动匹配sql语句. JPA是一个标准 Hibernate是JPA的一个实现,宗旨是尽量少写sql语句. 使用JPA 1.application.properti ...