Pular para o conteúdo

Configuração HTTP customizada

Por padrão, router.Run() inicia um servidor HTTP básico. Para uso em produção, você pode precisar customizar timeouts, limites de headers ou configurações TLS. Você pode fazer isso criando seu próprio http.Server e passando o router do Gin como o Handler.

Passe o router do Gin diretamente para http.ListenAndServe:

package main
import (
"net/http"
"github.com/gin-gonic/gin"
)
func main() {
router := gin.Default()
router.GET("/ping", func(c *gin.Context) {
c.String(http.StatusOK, "pong")
})
http.ListenAndServe(":8080", router)
}

Crie uma struct http.Server para configurar timeouts de leitura/escrita e outras opções:

package main
import (
"net/http"
"time"
"github.com/gin-gonic/gin"
)
func main() {
router := gin.Default()
router.GET("/ping", func(c *gin.Context) {
c.String(http.StatusOK, "pong")
})
s := &http.Server{
Addr: ":8080",
Handler: router,
ReadTimeout: 10 * time.Second,
WriteTimeout: 10 * time.Second,
MaxHeaderBytes: 1 << 20,
}
s.ListenAndServe()
}
Terminal window
curl http://localhost:8080/ping
# Output: pong