コンテンツにスキップ

デフォルトではミドルウェアなし

Ginにはルーターエンジンを作成する2つの方法があり、違いはデフォルトで登録されるミドルウェアにあります。

gin.Default() — LoggerとRecovery付き

gin.Default()は2つのミドルウェアが既に登録されたルーターを作成します:

  • Logger — リクエストログをstdoutに書き込みます(メソッド、パス、ステータスコード、レイテンシ)。
  • Recovery — ハンドラ内のpanicからリカバリし、500レスポンスを返します。サーバーのクラッシュを防止します。

これは素早く始めるための最も一般的な選択肢です。

gin.New() — 空のエンジン

gin.New()ミドルウェアが一切登録されていない完全に素のルーターを作成します。これは実行するミドルウェアを完全に制御したい場合に便利です。例えば:

  • デフォルトのテキストロガーの代わりに構造化ロガー(slogzerologなど)を使用したい場合。
  • panicリカバリの動作をカスタマイズしたい場合。
  • 最小限または特殊なミドルウェアスタックが必要なマイクロサービスを構築する場合。

package main
import (
"log"
"net/http"
"github.com/gin-gonic/gin"
)
func main() {
// ミドルウェアなしの空のエンジンを作成。
r := gin.New()
// 必要なミドルウェアのみを登録。
r.Use(gin.Recovery())
r.GET("/ping", func(c *gin.Context) {
c.String(http.StatusOK, "pong")
})
log.Fatal(r.Run(":8080"))
}

上記の例では、クラッシュを防ぐためにRecoveryミドルウェアが含まれていますが、デフォルトのLoggerミドルウェアは省略されています。独自のロギングミドルウェアに置き換えるか、完全に省略することができます。