Gin-中间件-使用

2020-07-06  本文已影响0人  诗意_面包

全局使用中间件

package main

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

func main()  {
    app := gin.Default()
    app.Use(PrintFullPath())
    app.GET("/", func(context *gin.Context) {
        fmt.Println("Hello World")
        context.Writer.WriteString("Hello World")
    })
    app.Run()
}

func PrintFullPath() gin.HandlerFunc {
    return func(context *gin.Context) {
        path := context.FullPath()
        // 路由处理前执行
        fmt.Printf("接收到请求:%s\n", path)
        context.Next()
        // 路由处理后执行
        fmt.Printf("请求处理完成: %s\n", path)
    }
}

指定路由使用中间件

package main

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

func main()  {
    app := gin.Default()
    app.GET("/", PrintFullPath(), func(context *gin.Context) {
        fmt.Println("Hello World")
        context.Writer.WriteString("Hello World")
    })
    app.Run()
}

func PrintFullPath() gin.HandlerFunc {
    return func(context *gin.Context) {
        path := context.FullPath()
        // 路由处理前执行
        fmt.Printf("接收到请求:%s\n", path)
        context.Next()
        // 路由处理后执行
        fmt.Printf("请求处理完成: %s\n", path)
    }
}
上一篇 下一篇

猜你喜欢

热点阅读