首页 > 其他分享 >Gin学习笔记--中间件

Gin学习笔记--中间件

时间:2023-04-12 13:55:56浏览次数:28  
标签:engine -- request 中间件 content context gin Gin

所有的请求都会经过中间件

示例代码:

package main

import (
    "fmt"
    "github.com/gin-gonic/gin"
    "time"
)

func main() {
    engine := gin.Default()
    engine.Use(func(context *gin.Context) {
        s := time.Now()
        fmt.Println("Start middleware")
        context.Set("request", "Middleware")
        l := time.Now().Sub(s)
        fmt.Println("Time:", l)

    })
    engine.GET("/index", func(context *gin.Context) {
        content, exists := context.Get("reques")
        if !exists {
            content = "null"
        }
        context.JSON(200, gin.H{
            "request": content,
        })
    })
    engine.GET("/user", func(context *gin.Context) {
        content, exists := context.Get("request")
        if !exists {
            content = "null"
        }
        context.JSON(200, gin.H{
            "message": content,
        })
    })
    engine.Run("localhost:8080")
}

在代码中,定义一个中间件,并且设置了一个参数“request”,值为“middleware”,在下面的两个请求中,都取到了该参数

 

 结果可见,两个请求都捕获了request参数

 

标签:engine,--,request,中间件,content,context,gin,Gin
From: https://www.cnblogs.com/99kol/p/17309560.html

相关文章

  • C#属性(Attribute)用法实例解析
    属性(Attribute)是C#程序设计中非常重要的一个技术,应用范围广泛,用法灵活多变。本文就以实例形式分析了C#中属性的应用。具体如下:一、运用范围程序集,模块,类型(类,结构,枚举,接口,委托),字段,方法(含构造),方法,参数,方法返回值,属性(property),Attribute[AttributeUsage(AttributeTargets.All)]......
  • 16-springcloud-ribbon-2-ribbon实现服务调用
    1、首先加入ribbon的依赖,但是eureka已经依赖了ribbon,所以这里不需要再引用ribbon的依赖;2、要使用ribbon,只需要一个注解: @Bean@LoadBalancedpublic RestTemplaterestTemplate(){    RestTemplaterestTemplate=new RestTemplate();    return restTemplate;}在R......
  • 十大股票资讯网站排名 炒股资讯网站排行榜 炒股必看的资讯网站推荐
    1、东方财富网著名的专业股票网站,创业板首家市值突破千亿的上市公司,是深证成份指数、创业板指数、中证100指数、沪深300指数和深证100指数的样本股。其股票频道提供24小时全球股票行情、股市直播、大盘分析、板块聚焦、焦点点评、报刊头条、热门股追踪、个股点睛、个股精华、公司......
  • Youpk 脱壳机脱壳原理分析
    Youpk是一个针对整体加固和Dex抽取加固壳的脱壳机主要是基于虚拟机的,也就是基于VA的脱壳机,相对FART出来的更晚一些,厂商针对少一些,脱壳位置相对更底层一些,还提供了Dex修复的工具,简直棒棒1.先分析整体脱壳的原理在ActivityThread的handleBindApplication中增加了代......
  • grafana+influxdb2+jmeter5.4搭建服务监控平台
    一.grafana+influxdb2安装通过docker的方式,创建个目录,写docker-compse1.docker-compse.ymlversion:"3"services:influxdb:image:influxdb:2.2.0container_name:influxdbports:-"8086:8086"grafana:image:grafana/grafana......
  • 快速搭建一个go语言web后端服务脚手架
    快速搭建一个go语言web后端服务脚手架源码:https://github.com/weloe/go-web-demoweb框架使用gin,数据操作使用gorm,访问控制使用casbin首先添加一下自定义的middlewarerecover_control.go,统一处理panicerror返回的信息packagemiddlewareimport( "fmt" "github.com/gin-......
  • 子查询-表子查询
    表子查询:返回的结果是多行多列常用的操作符:in代码:--查询和员工333和员工444的职位,薪资都相同的员工select*fromempwhere(salary,job)in(selectsalary,jobfromempwherename='333'orname='444');--查询入职时间在‘2006-01-01‘之后的员工信息以及部门信息sel......
  • RobotFramework 简介
    一、RobotFramework(一) Introduction RobotFrameworkisaPython-based,extensiblekeyword-drivenautomationframeworkforacceptancetesting,acceptancetestdrivendevelopment(ATDD),behaviordrivendevelopment(BDD)androboticprocessautomation(RPA)......
  • 2023.4.12——软件工程站立会议
    团队照片:站立会议内容:昨天做了什么?完成了团队第一阶段会议;今天要做什么?准备开始写具体代码实现;遇到什么问题?团队会议纪实和博客整理;......
  • 第一天打卡的第一个问题
    问题描述:编写一个程序计算两个整数之间所有整数(包含这两个整数)的和。假设先输入较小的整数,假设整数都是不超过int。解决思路:1.先定义两个变量,存储输入的上限和下限。2.循环从下限到上限加和3.输出。代码:#include<iostream>usingnamespacestd;intmain(){intmin,m......