1. 中间件练习

  • 定义程序计时中间件,然后定义2个路由,执行函数后应该打印统计的执行时间,如下:
  1. package main
  2. import (
  3. "fmt"
  4. "time"
  5. "github.com/gin-gonic/gin"
  6. )
  7. // 定义中间
  8. func myTime(c *gin.Context) {
  9. start := time.Now()
  10. c.Next()
  11. // 统计时间
  12. since := time.Since(start)
  13. fmt.Println("程序用时:", since)
  14. }
  15. func main() {
  16. // 1.创建路由
  17. // 默认使用了2个中间件Logger(), Recovery()
  18. r := gin.Default()
  19. // 注册中间件
  20. r.Use(myTime)
  21. // {}为了代码规范
  22. shoppingGroup := r.Group("/shopping")
  23. {
  24. shoppingGroup.GET("/index", shopIndexHandler)
  25. shoppingGroup.GET("/home", shopHomeHandler)
  26. }
  27. r.Run(":8000")
  28. }
  29. func shopIndexHandler(c *gin.Context) {
  30. time.Sleep(5 * time.Second)
  31. }
  32. func shopHomeHandler(c *gin.Context) {
  33. time.Sleep(3 * time.Second)
  34. }

效果演示:

中间件练习 - 图1