使用中间件

  1. func main() {
  2. // 新建一个没有任何默认中间件的路由
  3. r := gin.New()
  4. // 全局中间件
  5. // Logger 中间件将日志写入 gin.DefaultWriter,即使你将 GIN_MODE 设置为 release。
  6. // By default gin.DefaultWriter = os.Stdout
  7. r.Use(gin.Logger())
  8. // Recovery 中间件会 recover 任何 panic。如果有 panic 的话,会写入 500。
  9. r.Use(gin.Recovery())
  10. // 你可以为每个路由添加任意数量的中间件。
  11. r.GET("/benchmark", MyBenchLogger(), benchEndpoint)
  12. // 认证路由组
  13. // authorized := r.Group("/", AuthRequired())
  14. // 和使用以下两行代码的效果完全一样:
  15. authorized := r.Group("/")
  16. // 路由组中间件! 在此例中,我们在 "authorized" 路由组中使用自定义创建的
  17. // AuthRequired() 中间件
  18. authorized.Use(AuthRequired())
  19. {
  20. authorized.POST("/login", loginEndpoint)
  21. authorized.POST("/submit", submitEndpoint)
  22. authorized.POST("/read", readEndpoint)
  23. // 嵌套路由组
  24. testing := authorized.Group("testing")
  25. testing.GET("/analytics", analyticsEndpoint)
  26. }
  27. // 监听并在 0.0.0.0:8080 上启动服务
  28. r.Run(":8080")
  29. }