// criar um roteador sem nenhum intermediário por padrão
// intermediário registador escreverá os registos ao "gin.DefaultWriter",
// mesmo se definires com "GIN_MODE=release".
// por padrão "gin.DefaultWriter = os.Stdout"
// intermediário de recuperação recupera de quaisquer pânicos e
// escreve um 500 se ouve um.
router.Use(gin.Recovery())
// intermediário por rota, podes adicionar tanto quanto desejares.
router.GET("/benchmark", MyBenchLogger(), benchEndpoint)
// authorized := router.Group("/", AuthRequired())
// exatamente o mesmo que:
authorized := router.Group("/")
// intermediário por grupo! neste caso usamos o intermediário
// "AuthRequired()" criado de maneira personalizada só no
authorized.Use(AuthRequired())
authorized.POST("/login", loginEndpoint)
authorized.POST("/submit", submitEndpoint)
authorized.POST("/read", readEndpoint)
testing := authorized.Group("testing")
testing.GET("/analytics", analyticsEndpoint)
// ouvir e servir no 0.0.0.0:8080