getting started with router middleware in gin framework

  • routing middleware
  • using middleware in routing packets
  • global middleware

routing middleware

  1. define middleware
  2. 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

  1. middleware coding
  2. using middleware in routing packets
  3. implementation of routing packets function in controller
  4. 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

  1. difine middleware
  2. register middleware in main

#import the directory where the middleware is located

r.Use(middleware.InitMiddleware)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值