التوجيه
يوفر Gin نظام توجيه قوي مبني على httprouter لمطابقة عناوين URL عالية الأداء. يستخدم httprouter من الداخل شجرة Radix (تُسمى أيضاً الشجرة المضغوطة) لتخزين المسارات والبحث عنها، مما يعني أن مطابقة المسارات سريعة للغاية ولا تتطلب أي تخصيص للذاكرة لكل عملية بحث. وهذا يجعل Gin أحد أسرع أطر عمل Go للويب المتاحة.
يتم تسجيل المسارات عن طريق استدعاء طريقة HTTP على المحرك (أو مجموعة مسارات) وتقديم نمط URL مع دالة معالجة واحدة أو أكثر:
package main
import ( "net/http"
"github.com/gin-gonic/gin")
func main() { router := gin.Default()
router.GET("/hello", func(c *gin.Context) { c.String(http.StatusOK, "Hello, World!") })
router.POST("/users", func(c *gin.Context) { name := c.PostForm("name") c.JSON(http.StatusCreated, gin.H{"user": name}) })
router.Run(":8080")}في هذا القسم
تغطي الصفحات أدناه كل موضوع من مواضيع التوجيه بالتفصيل:
- استخدام طرق HTTP — تسجيل المسارات لـ GET وPOST وPUT وDELETE وPATCH وHEAD وOPTIONS.
- المعاملات في المسار — التقاط الأجزاء الديناميكية من مسارات URL (مثل
/user/:name). - معاملات سلسلة الاستعلام — قراءة قيم سلسلة الاستعلام من عنوان URL للطلب.
- الاستعلام ونموذج الإرسال — الوصول إلى بيانات سلسلة الاستعلام ونموذج POST في نفس المعالج.
- Map كسلسلة استعلام أو نموذج إرسال — ربط معاملات Map من سلاسل الاستعلام أو نماذج POST.
- نموذج Multipart/urlencoded — تحليل بيانات
multipart/form-dataوapplication/x-www-form-urlencoded. - رفع الملفات — معالجة رفع ملف واحد أو ملفات متعددة.
- تجميع المسارات — تنظيم المسارات تحت بادئات مشتركة مع وسيطات مشتركة.
- إعادة التوجيه — تنفيذ إعادة التوجيه على مستوى HTTP والموجّه.