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

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

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

gin.Default() — مع Logger و Recovery

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

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

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

gin.New() — محرك فارغ

يُنشئ 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 الافتراضي محذوف. يمكنك استبداله بوسيط تسجيل خاص بك أو حذفه تماماً.