0Pricing
Go Academy · درس

موجّه Gin ومجموعات المسارات

إعداد Engine والمجموعات ومعاملات المسارات

موجّه Gin ومجموعات المسارات درس مجاني في Go Academy على CoddyKit. هذا هو الدرس 1 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Go Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Go Academy 4 دروس في المجموع.

ما هي Gin؟

Gin هي إطار عمل ويب عالي الأداء لبروتوكول HTTP في Go. تستخدم موجّه شجرة radix، وتوفر دعمًا للبرمجيات الوسيطة، وربط JSON، والتحقق — مما يجعلها شائعة في واجهات REST API.

التثبيت والإعداد الأساسي

استورد محرّك Gin وأنشئه:

go get github.com/gin-gonic/gin

package main

func main() {
    r := gin.Default()
    r.GET("/ping", func(c *gin.Context) {
        c.JSON(200, gin.H{"message": "pong"})
    })
    r.Run(":8080")
}

المقارنة بين gin.Default وgin.New

تتضمن gin.Default() البرمجيتين الوسيطتين Logger وRecovery. أما gin.New() فتنشئ محرّكًا بلا برمجيات وسيطة — استخدمها عندما تريد التحكم الكامل في البرمجيات الوسيطة.

أساليب المسارات

سجّل المسارات الخاصة بأساليب HTTP التالية: GET وPOST وPUT وPATCH وDELETE وOPTIONS وHEAD وAny:

r.GET("/users", listUsers)
r.POST("/users", createUser)
r.PUT("/users/:id", updateUser)
r.DELETE("/users/:id", deleteUser)

معلمات المسار

استخرج معلمات المسار باستخدام c.Param("name"):

r.GET("/users/:id", func(c *gin.Context) {
    id := c.Param("id")
    c.JSON(200, gin.H{"id": id})
})

معلمات الاستعلام

اقرأ معلمات الاستعلام باستخدام c.Query وc.DefaultQuery:

page := c.DefaultQuery("page", "1")
limit := c.Query("limit") // "" if absent

مجموعات المسارات

اجمع المسارات ذات الصلة تحت بادئة مشتركة باستخدام r.Group. وتؤثر البرمجية الوسيطة المطبقة على المجموعة في جميع المسارات الموجودة فيها:

api := r.Group("/api/v1")
{
    api.GET("/users", listUsers)
    api.POST("/users", createUser)
    api.PUT("/users/:id", updateUser)
}

المجموعات المتداخلة

يمكن تداخل المجموعات لتنظيم أدق:

admin := r.Group("/admin")
admin.Use(AdminAuth())
{
    admin.GET("/stats", getStats)
    admin.DELETE("/users/:id", deleteUser)
}

لا يوجد مسار / الأسلوب غير مسموح

تعامل مع حالتي 404 و405 بسلاسة باستخدام r.NoRoute وr.NoMethod:

r.NoRoute(func(c *gin.Context) {
    c.JSON(404, gin.H{"error": "not found"})
})

الملفات الثابتة

قدّم الملفات الثابتة من مجلد:

r.Static("/static", "./public")
r.StaticFile("/favicon.ico", "./favicon.ico")

المحرّك بوصفه http.Handler

ينفّذ *gin.Engine في Gin الواجهة http.Handler، لذا يمكنك استخدامه مع http.Server مخصص لضبط مهلات الانتظار:

srv := &http.Server{Addr: ":8080", Handler: r, ReadTimeout: 5*time.Second}
srv.ListenAndServe()

تحقق سريع

ما فائدة استخدام مجموعات المسارات في Gin؟

خلاصة: موجّه Gin والمجموعات

النقاط الأساسية:

  • تتضمن gin.Default() كلاً من Logger وRecovery؛ استخدم gin.New() للإعداد المخصص
  • استخدم c.Param لمعلمات المسار وc.Query لمعلمات الاستعلام
  • استخدم r.Group("/prefix") للبادئة المشتركة والبرمجية الوسيطة
  • تنفّذ Gin الواجهة http.Handler — لذا يمكن استخدامها مع http.Server مخصص

الأسئلة الشائعة

هل درس «موجّه Gin ومجموعات المسارات» مجاني؟

نعم — نص درس «موجّه Gin ومجموعات المسارات» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Go Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Go Academy 4 دروس في المجموع.

ماذا ستتعلم في «موجّه Gin ومجموعات المسارات»؟

إعداد Engine والمجموعات ومعاملات المسارات تتمرن على Go Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Go Academy؟

لا تُشترط خبرة سابقة. Go Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 1 من أصل 4.

كم من الوقت يستغرق درس «موجّه Gin ومجموعات المسارات»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Go Academy هذا؟

نعم. كل درس في Go Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. موجّه Gin ومجموعات المسارات
  2. ربط الطلبات والتحقق من صحتها
  3. مساعدات الاستجابة ورموز الحالة
  4. Middleware في Gin: المصادقة والتسجيل
← العودة إلى Go Academy