تخطَّ إلى المحتوى

بدون وسيطات افتراضية

يوفر Gin طريقتين لإنشاء محرك الموجّه، والفرق يعود إلى الوسيطات المُرفقة افتراضياً.

يُنشئ gin.Default() موجّهاً بوسيطتين مُرفقتين بالفعل:

  • Logger — يكتب سجلات الطلبات إلى الإخراج القياسي (الطريقة، المسار، رمز الحالة، التأخير).
  • Recovery — يستعيد من أي حالات ذعر في المعالجات ويُرجع استجابة 500، مما يمنع خادمك من الانهيار.

هذا هو الخيار الأكثر شيوعاً للبدء بسرعة.

يُنشئ gin.New() موجّهاً فارغاً تماماً بدون أي وسيطات مُرفقة. هذا مفيد عندما تريد التحكم الكامل في الوسيطات التي تعمل، على سبيل المثال:

  • تريد استخدام مسجّل منظم (مثل slog أو zerolog) بدلاً من المسجّل النصي الافتراضي.
  • تريد تخصيص سلوك استرداد الذعر.
  • تبني خدمة مصغّرة حيث تحتاج إلى حزمة وسيطات بسيطة أو متخصصة.
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"))
}

في المثال أعلاه، وسيط Recovery مُضمّن لمنع الانهيارات، لكن وسيط Logger الافتراضي محذوف. يمكنك استبداله بوسيط تسجيل خاص بك أو حذفه تماماً.