zoukankan      html  css  js  c++  java
  • gin实现中间件middleware

    func main() {
        engine := gin.Default()
        engine.Use(RequestInfos())
        engine.GET("/query", func(context *gin.Context) {
            context.JSON(200,map[string] interface{}{
                "code": 1,
                "msg": context.FullPath(),
            })
        })
        engine.Run(":8888")
    
    }
    //打印请求的中间件;在调用http://localhost:8080/query之前调用下面方法
    func RequestInfos() gin.HandlerFunc {
        return func(context *gin.Context) {
            path := context.FullPath()
            method := context.Request.Method
            fmt.Println("path-->"+path)
            fmt.Println("method--->"+method)
    
        }
    }

    如果有多个请求,如果想让单独的某个请求来使用RequestInfos

    //直接放到第二个参数上
    engine := gin.Default()
        //engine.Use(RequestInfos())
        engine.GET("/query", RequestInfos(),func(context *gin.Context) {

    当query处理完后,处理结束后的信息也通过中间件打印出来. context.Next()

    1、engine.Use(RequestInfos())
    3、engine.GET("/query", func(context *gin.Context) {
            context.JSON(404,map[string] interface{}{
                "code": 1,
                "msg": context.FullPath(),
            })
        })
        engine.Run(":8888")
    
    }
    //打印请求的中间件;在调用query之前调用
    func RequestInfos() gin.HandlerFunc {
        return func(context *gin.Context) {
    --------2、fmt.Println("状态码:",context.Writer.Status())
            path := context.FullPath()
            method := context.Request.Method
            fmt.Println("path-->"+path)
            fmt.Println("method--->"+method)
            //*****************
              context.Next()
    --------4、fmt.Println("状态码:",context.Writer.Status())
          
    执行顺序:如上
    打印结果:
        状态码: 200
        path-->/query
        method--->GET
        状态码: 404

    正在整理笔记, 如有雷同,请告知,必添加!

  • 相关阅读:
    第五周日志模块正则和包
    tcpdump常用参数说明
    Python调用API接口的几种方式 数据库 脚本
    关于相互递归调用
    VS Code中配置Markdown
    2019CCPC网络赛 HD6707——杜教筛
    一个关于gcd的等式的证明
    2019CCPC网络赛 HDU 6702——找规律
    双系统的安装与卸载
    [0, 1] 区间内 n 次独立随机事件的一些问题
  • 原文地址:https://www.cnblogs.com/qzhc/p/13454596.html
Copyright © 2011-2022 走看看