"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > تجاوز أسلوب HTTP

تجاوز أسلوب HTTP

تم النشر بتاريخ 2024-11-11
تصفح:509

HTTP Method Override

مقدمة

تجاوز أسلوب HTTP هو أسلوب يستخدم لدعم العملاء الذين لا يدعمون بعض أساليب HTTP مثل PUT أو DELETE. يعد هذا مفيدًا بشكل خاص لمتصفحات الويب والعملاء الأقدم الذين يدعمون فقط أساليب GET وPOST. يوفر إطار عمل الويب Iris طريقة قوية ومرنة لتجاوز البرامج الوسيطة التي تسمح للمطورين بتنفيذ تجاوز أسلوب HTTP بسهولة في تطبيقاتهم. سيرشدك هذا الدليل عبر ميزات واستخدامات طريقة Iris لتجاوز البرامج الوسيطة، مما يساعدك على فهم قدراتها والاستفادة منها لتحسين تطبيقات الويب الخاصة بك.

ميزات طريقة Iris لتجاوز البرامج الوسيطة

توفر البرامج الوسيطة لتجاوز طريقة Iris مجموعة متنوعة من الميزات للتعامل مع تجاوز طريقة HTTP بكفاءة. وتشمل هذه الميزات:

  1. طرق قابلة للتخصيص: تحديد طرق HTTP التي يمكن تجاوزها.
  2. رؤوس مخصصة: حدد رؤوس مخصصة لتحديد تجاوز الطريقة.
  3. دعم حقل النموذج: استخدم حقول النموذج لتحديد طريقة التجاوز.
  4. دعم معلمات الاستعلام: استخدم معلمات الاستعلام لتحديد تجاوز الطريقة.
  5. حفظ الطريقة الأصلية: يمكنك اختياريًا حفظ طريقة HTTP الأصلية لاستخدامها لاحقًا.

تثبيت

لاستخدام طريقة Iris لتجاوز البرامج الوسيطة، تحتاج إلى استيرادها في تطبيق Iris الخاص بك:

import "github.com/kataras/iris/v12/middleware/methodoverride"

الاستخدام

الإعداد الأساسي

لاستخدام طريقة تجاوز البرامج الوسيطة، تحتاج إلى استيراد الحزم الضرورية وتكوين البرامج الوسيطة في تطبيق Iris الخاص بك. فيما يلي مثال أساسي:

package main

import (
    "github.com/kataras/iris/v12"
    "github.com/kataras/iris/v12/middleware/methodoverride"
)

func main() {
    app := iris.New()

    // Create the method override middleware
    mo := methodoverride.New(
        methodoverride.SaveOriginalMethod("_originalMethod"),
    )

    // Register the middleware with UseRouter
    app.UseRouter(mo)

    app.Post("/path", func(ctx iris.Context) {
        ctx.WriteString("POST response")
    })

    app.Delete("/path", func(ctx iris.Context) {
        ctx.WriteString("DELETE response")
    })

    app.Listen(":8080")
}

طرق قابلة للتخصيص

يمكنك تحديد طرق HTTP التي يمكن تجاوزها باستخدام خيار الأساليب. افتراضيًا، يمكن تجاوز أسلوب POST فقط. إليك مثال:

mo := methodoverride.New(
    methodoverride.Methods("POST", "PUT"),
)

رؤوس مخصصة

يمكنك تحديد رؤوس مخصصة لتحديد طريقة التجاوز باستخدام خيار الرؤوس. افتراضيًا، تتحقق البرامج الوسيطة من الرؤوس التالية: X-HTTP-Method، وX-HTTP-Method-Override، وX-Method-Override. إليك مثال:

mo := methodoverride.New(
    methodoverride.Headers("X-Custom-Method"),
)

الدعم الميداني للنموذج

يمكنك استخدام حقول النموذج لتحديد طريقة التجاوز باستخدام خيار FormField. افتراضيًا، تتحقق البرامج الوسيطة من حقل النموذج _method. إليك مثال:

mo := methodoverride.New(
    methodoverride.FormField("_method"),
)

دعم معلمة الاستعلام

يمكنك استخدام معلمات الاستعلام لتحديد طريقة التجاوز باستخدام خيار الاستعلام. افتراضيًا، تتحقق البرامج الوسيطة من معلمة الاستعلام _method. إليك مثال:

mo := methodoverride.New(
    methodoverride.Query("_method"),
)

حفظ الطريقة الأصلية

يمكنك اختياريًا حفظ طريقة HTTP الأصلية لاستخدامها لاحقًا باستخدام خيار SaveOriginalMethod. إليك مثال:

mo := methodoverride.New(
    methodoverride.SaveOriginalMethod("_originalMethod"),
)

مثال

إليك مثال كامل يوضح كيفية استخدام طريقة تجاوز البرامج الوسيطة مع تطبيق Iris:

package main

import (
    "github.com/kataras/iris/v12"
    "github.com/kataras/iris/v12/middleware/methodoverride"
)

func main() {
    app := iris.New()

    // Create the method override middleware
    mo := methodoverride.New(
        methodoverride.SaveOriginalMethod("_originalMethod"),
    )

    // Register the middleware with UseRouter
    app.UseRouter(mo)

    app.Post("/path", func(ctx iris.Context) {
        ctx.WriteString("POST response")
    })

    app.Delete("/path", func(ctx iris.Context) {
        ctx.WriteString("DELETE response")
    })

    app.Listen(":8080")
}

خاتمة

توفر طريقة Iris لتجاوز البرامج الوسيطة طريقة بسيطة وفعالة لدعم العملاء الذين لا يدعمون طرق HTTP معينة. ومن خلال الاستفادة من ميزات هذه البرامج الوسيطة، يمكنك تحسين التوافق والمرونة لتطبيقات الويب الخاصة بك.

بيان الافراج تم نشر هذه المقالة على: https://dev.to/kataras/http-method-override-1b6p?1 إذا كان هناك أي انتهاك، يرجى الاتصال بـ [email protected] لحذفه
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3