التوثيق
Gin هو إطار عمل ويب عالي الأداء لبروتوكول HTTP مكتوب بلغة Go. يوفر واجهة برمجية مشابهة لـ Martini لكن بأداء أفضل بشكل ملحوظ - أسرع بما يصل إلى 40 مرة - بفضل httprouter. صُمم Gin لبناء واجهات REST البرمجية، وتطبيقات الويب، والخدمات المصغّرة حيث تكون السرعة وإنتاجية المطور أمراً أساسياً.
لماذا تختار Gin؟
يجمع Gin بين بساطة التوجيه على نمط Express.js وخصائص أداء Go، مما يجعله مثالياً لـ:
- بناء واجهات REST البرمجية عالية الإنتاجية
- تطوير الخدمات المصغّرة التي تحتاج إلى معالجة العديد من الطلبات المتزامنة
- إنشاء تطبيقات ويب تتطلب أوقات استجابة سريعة
- إنشاء نماذج أولية لخدمات الويب بسرعة مع الحد الأدنى من الكود المتكرر
الميزات الرئيسية لـ Gin:
- موجّه بدون تخصيص ذاكرة - توجيه فعّال للغاية من حيث الذاكرة بدون تخصيصات في الكومة
- أداء عالٍ - تُظهر اختبارات الأداء سرعة متفوقة مقارنة بأطر عمل Go الأخرى للويب
- دعم الوسيطات - نظام وسيطات قابل للتوسع للمصادقة، والتسجيل، وCORS، وغيرها
- خالٍ من الأعطال - وسيط استرداد مدمج يمنع حالات الذعر من إيقاف خادمك
- التحقق من JSON - ربط والتحقق من صحة JSON للطلب/الاستجابة تلقائياً
- تجميع المسارات - تنظيم المسارات ذات الصلة وتطبيق وسيطات مشتركة
- إدارة الأخطاء - معالجة وتسجيل الأخطاء بشكل مركزي
- عرض مدمج - دعم JSON وXML وقوالب HTML والمزيد
- قابل للتوسع - نظام بيئي كبير من الوسيطات والإضافات المجتمعية
البدء
المتطلبات الأساسية
التثبيت
مع دعم وحدات Go، ما عليك سوى استيراد Gin في الكود الخاص بك وسيقوم Go بجلبه تلقائياً أثناء البناء:
import "github.com/gin-gonic/gin"تطبيقك الأول مع Gin
إليك مثالاً كاملاً يوضح بساطة Gin:
package main
import ( "net/http"
"github.com/gin-gonic/gin")
func main() { // Create a Gin router with default middleware (logger and recovery) r := gin.Default()
// Define a simple GET endpoint r.GET("/ping", func(c *gin.Context) { // Return JSON response c.JSON(http.StatusOK, gin.H{ "message": "pong", }) })
// Start server on port 8080 (default) // Server will listen on 0.0.0.0:8080 (localhost:8080 on Windows) r.Run()}تشغيل التطبيق:
-
احفظ الكود أعلاه باسم
main.go -
شغّل التطبيق:
Terminal window go run main.go -
افتح متصفحك وزر
http://localhost:8080/ping -
يجب أن ترى:
{"message":"pong"}
ما يوضحه هذا المثال:
- إنشاء موجّه Gin مع الوسيطات الافتراضية
- تعريف نقاط نهاية HTTP بدوال معالجة بسيطة
- إرجاع استجابات JSON
- تشغيل خادم HTTP
الخطوات التالية
بعد تشغيل تطبيقك الأول مع Gin، استكشف هذه الموارد لمعرفة المزيد:
مصادر التعلم
- دليل البدء السريع مع Gin - دليل شامل مع أمثلة API وتكوينات البناء
- مستودع الأمثلة - أمثلة جاهزة للتشغيل توضح حالات استخدام Gin المختلفة:
- تطوير واجهات REST البرمجية
- المصادقة والوسيطات
- رفع وتنزيل الملفات
- اتصالات WebSocket
- عرض القوالب
الدروس الرسمية
نظام الوسيطات البيئي
يمتلك Gin نظاماً بيئياً غنياً من الوسيطات لاحتياجات تطوير الويب الشائعة. استكشف الوسيطات المساهم بها من المجتمع:
-
gin-contrib - مجموعة الوسيطات الرسمية بما في ذلك:
- المصادقة (JWT، Basic Auth، الجلسات)
- CORS، تحديد المعدل، الضغط
- التسجيل، المقاييس، التتبع
- تقديم الملفات الثابتة، محركات القوالب
-
gin-gonic/contrib - وسيطات مجتمعية إضافية