Varsayılan olarak ara katmansız
Gin, bir yönlendirici motoru oluşturmanın iki yolunu sunar ve aradaki fark, varsayılan olarak hangi ara katmanın eklendiğidir.
gin.Default() — Logger ve Recovery ile
gin.Default(), iki ara katman zaten eklenmiş bir yönlendirici oluşturur:
- Logger — İstek loglarını stdout’a yazar (metod, yol, durum kodu, gecikme).
- Recovery — İşleyicilerdeki herhangi bir panic’ten kurtarır ve sunucunuzun çökmesini önleyerek 500 yanıtı döndürür.
Bu, hızlıca başlamak için en yaygın seçimdir.
gin.New() — boş bir motor
gin.New(), hiçbir ara katman eklenmemiş tamamen boş bir yönlendirici oluşturur. Hangi ara katmanın çalışacağı üzerinde tam kontrol istediğinizde faydalıdır, örneğin:
- Varsayılan metin logger yerine yapılandırılmış bir logger (
slogveyazerologgibi) kullanmak istiyorsanız. - Panic kurtarma davranışını özelleştirmek istiyorsanız.
- Minimum veya özelleştirilmiş bir ara katman yığını gerektiren bir mikro hizmet oluşturuyorsanız.
Örnek
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"))}Yukarıdaki örnekte, çökmeleri önlemek için Recovery ara katmanı dahil edilmiştir, ancak varsayılan Logger ara katmanı dahil edilmemiştir. Kendi loglama ara katmanınızla değiştirebilir veya tamamen çıkarabilirsiniz.