Fiber Go: دليل شامل مع أمثلة عملية

مدرب بايثون أونلاين للمبتدئين

تعلم Python بسهولة دون إرهاق نظري. حل مهام عملية مع التحقق التلقائي واكتب الكود مباشرة في المتصفح.

ابدأ الدورة

ما هو Fiber ولماذا تحتاجه؟

Fiber هو إطار عمل ويب سريع للغة Go، مستوحى من إطار العمل الشهير Express.js الخاص بـ Node.js. تم تصميمه لتطوير تطبيقات الويب وواجهات برمجة التطبيقات (APIs) عالية الأداء مع استهلاك ضئيل للذاكرة. يستخدم Fiber نموذج الإدخال/الإخراج غير المحظور (non-blocking I/O) القائم على الـ goroutines وحزمة fasthttp، مما يجعله واحدًا من أسرع أطر العمل للغة Go.

لماذا تحتاج Fiber؟

  • الأداء العالي: يعمل Fiber بشكل أسرع بكثير من الحزمة القياسية net/http بفضل استخدامه لـ fasthttp. يمكنه معالجة عشرات الآلاف من الطلبات في الثانية.
  • البساطة وتركيب مألوف: إذا كنت تعرف Express.js، ستتعلم Fiber بسرعة. واجهة برمجة التطبيقات (API) متشابهة جدًا: المسارات (routes)، الوسائط الوسيطة (middleware)، معالجات الطلبات — كل شيء بديهي وسهل.
  • عدم تخصيص ذاكرة (zero memory allocation): يسعى Fiber إلى تقليل تخصيص الذاكرة، مما يقلل الضغط على أداة جمع القمامة (garbage collector) ويزيد من استقرار التطبيق.
  • قابلية التوسع: عدد كبير من الوسائط الوسيطة المدمجة (CORS، تسجيل، ضغط، جلسات، إلخ) وإمكانية إنشاء وسائط مخصصة.
  • دعم المعايير الحديثة: يدعم Fiber HTTP/2، WebSocket، محركات القوالب (templating engines)، الملفات الثابتة، وغيرها الكثير.

تثبيت Fiber

Fiber هي مكتبة للغة Go، لذا يتم التثبيت عبر مدير الحزم القياسي Go. تأكد من أن لديك Go الإصدار 1.16 أو أحدث.

# تهيئة الوحدة (إذا لم تكن قد فعلت ذلك بعد)
go mod init myapp

# تثبيت Fiber (أحدث إصدار مستقر)
go get github.com/gofiber/fiber/v2

بعد ذلك، يمكنك استيراد Fiber في مشروعك:

import "github.com/gofiber/fiber/v2"

ملاحظة: إذا كنت تستخدم إصدارًا أقدم من Go، قد تحتاج إلى تثبيت Fiber v1. لكن يُوصى باستخدام v2 لأنها أكثر تطورًا ونشاطًا.

بداية سريعة مع مثال كود

أنشئ ملفًا باسم main.go واكتب خادم HTTP بسيط:

package main

import "github.com/gofiber/fiber/v2"

func main() {
    // إنشاء تطبيق Fiber جديد
    app := fiber.New()

    // تعريف مسار GET /
    app.Get("/", func(c *fiber.Ctx) error {
        return c.SendString("مرحبًا بك في Fiber!")
    })

    // تشغيل الخادم على المنفذ 3000
    app.Listen(":3000")
}

قم بتشغيل الخادم:

go run main.go

افتح المتصفح وانتقل إلى http://localhost:3000. ستظهر لك رسالة "مرحبًا بك في Fiber!".

الشرح:

  • fiber.New() — ينشئ نسخة جديدة من التطبيق.
  • app.Get("/", handler) — يسجل معالجًا لطلبات GET على المسار الجذر.
  • c *fiber.Ctx — سياق الطلب، يوفر الوصول إلى بيانات الطلب والاستجابة.
  • c.SendString() — يرسل نصًا كاستجابة.
  • app.Listen(":3000") — يشغل الخادم على المنفذ 3000.

الدوال والطرق الأساسية في Fiber

دعنا نستعرض 10 دوال وطرق رئيسية في Fiber مع شرح مفصل وأمثلة.

1. fiber.New()

الوظيفة: إنشاء نسخة جديدة من تطبيق Fiber بالإعدادات الافتراضية أو بإعدادات مخصصة.

المعاملات: تقبل معاملًا اختياريًا config ...fiber.Config — وهو هيكل يحتوي على إعدادات (مثل AppName، Prefork، ServerHeader، إلخ).

مثال:

package main

import "github.com/gofiber/fiber/v2"

func main() {
    // إنشاء بالإعدادات الافتراضية
    app := fiber.New()

    // إنشاء بإعدادات مخصصة
    // app := fiber.New(fiber.Config{
    //     AppName: "MyApp",
    //     Prefork: true,
    // })
}

توصيات