Перейти к содержимому

Без middleware по умолчанию

Gin предлагает два способа создания маршрутизатора, и разница заключается в том, какие middleware подключены по умолчанию.

gin.Default() создаёт маршрутизатор с двумя уже подключёнными middleware:

  • Logger — Записывает логи запросов в stdout (метод, путь, код статуса, задержка).
  • Recovery — Восстанавливается после любых паник в обработчиках и возвращает ответ 500, предотвращая падение сервера.

Это наиболее распространённый выбор для быстрого старта.

gin.New() создаёт полностью чистый маршрутизатор без подключённых middleware. Это полезно, когда вам нужен полный контроль над тем, какие middleware выполняются, например:

  • Вы хотите использовать структурированный логгер (такой как slog или zerolog) вместо стандартного текстового логгера.
  • Вы хотите настроить поведение восстановления после паник.
  • Вы создаёте микросервис, где нужен минимальный или специализированный набор middleware.
package main
import (
"log"
"net/http"
"github.com/gin-gonic/gin"
)
func main() {
// Create a blank engine with no middleware.
r := gin.New()
// Attach only the middleware you need.
r.Use(gin.Recovery())
r.GET("/ping", func(c *gin.Context) {
c.String(http.StatusOK, "pong")
})
log.Fatal(r.Run(":8080"))
}

В примере выше middleware Recovery подключён для предотвращения падений, но стандартный middleware Logger опущен. Вы можете заменить его своим собственным middleware логирования или полностью его убрать.