- routing middleware
- using middleware in routing packets
- global middleware
routing middleware
- define middleware
- use in routin
#install gin
go get -u github.com/gin-gonic/gin
#1,define middleware
//define a mdiddleware
func initMiddleware(c *gin.Context) {
start := time.Now().UnixNano()
fmt.Println("this is a middleware demo")
c.Next()
//c.Abort()
end := time.Now().UnixNano()
fmt.Println(end - start)
}
#2.use in routin
r.GET("/", initMiddleware, func(c *gin.Context) {
fmt.Print("mdiddleware page ")
})
#3.routing middleware complete code
package main
import (
"fmt"
"github.com/gin-gonic/gin"
"time"
)
// define a mdiddleware
func initMiddleware(c *gin.Context) {
start := time.Now().UnixNano()
fmt.Println("this is a middleware demo")
c.Next()
//c.Abort()
end := time.Now().UnixNano()
fmt.Println(end - start)
}
func main() {
//create a route with default engine
r := gin.Default()
r.GET("/", initMiddleware, func(c *gin.Context) {
fmt.Print("mdiddleware page ")
})
r.Run(":8089")
}
#Execute result:
http://localhost:8089/
#Listening and serving HTTP on :8089
#this is a middleware demo
#mdiddleware page 57731
#[GIN] 2022/11/04 - 22:50:01 | 200 | 66.69µs | 127.0.0.1 | GET #"/"
using middleware in routing packets
- middleware coding
- using middleware in routing packets
- implementation of routing packets function in controller
- register routing packets in main
#1.create ./middleware/init.go
package middleware
import (
"fmt"
"github.com/gin-gonic/gin"
"time"
)
// define middleware
func InitMiddleware(c *gin.Context) {
//show crrent timestamp
fmt.Println(time.Now())
//request routing address
fmt.Println(c.Request.URL)
}
#2.create ./routers/adminRouters.go
package routers
import (
"gindemo2/controllers/admin"
"gindemo2/middleware"
"github.com/gin-gonic/gin"
)
func AdminRouterInit(r *gin.Engine) {
adminRouters := r.Group("/admin", middleware.InitMiddleware)
{
adminRouters.GET("/", admin.UserController{}.Index)
}
}
#3.create ./controllers/admin/userController.go
package admin
import "github.com/gin-gonic/gin"
type UserController struct{}
func (con UserController) Index(c *gin.Context) {
c.String(200, "using middleware in routingg packets")
}
4.register routing packets in main
package main
import (
"gindemo2/routers"
"github.com/gin-gonic/gin"
)
func main() {
//1.create a route with default engine
r := gin.Default()
//r.Use(initMiddleware)
//register routing packets in main
routers.AdminRouterInit(r)
r.Run(":8089")
}
#Execute result:
go run main.go
#Listening and serving HTTP on :8089
#2022-11-04 23:24:25.859384826 -0400 EDT m=+10.339087166
#/admin/
#[GIN] 2022/11/04 - 23:24:25 | 200 | 337.912µs | 127.0.0.1 | GET #"/admin/"
http://localhost:8089/admin/
#execute result:using middleware in routing pockets
global middleware
- difine middleware
- register middleware in main
#import the directory where the middleware is located
r.Use(middleware.InitMiddleware)