• 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

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

  • 相关阅读:
    业务领域建模Domain Modeling
    用例建模Use Case Modeling
    分析一套源代码的代码规范和风格并讨论如何改进优化代码
    结合工程实践选题调研分析同类软件产品
    如何提高程序员的键盘使用效率?
    第一次博客作业
    python_同时迭代多个对象
    python_判断奇偶数
    印象笔记markdown使用笔记
    【转】A*算法解决八数码问题
  • 原文地址:https://www.cnblogs.com/qzhc/p/13454596.html
Copyright © 2020-2023  润新知