Gin-中间件-使用

全局使用中间件

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)
    }
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。