Go هي لغة قوية ومرنة لبناء تطبيقات الويب. ال شبكة تلعب الحزمة دورًا أساسيًا في النظام البيئي لـ Go.
مثل معظم لغات البرمجة من جانب الخادم ، يأتي Go مزودًا بحزمة HTTP للتفاعل مع بروتوكول HTTP. حزمة Go ذات الصلة هي حزمة http الحزمة ، وهي حزمة فرعية من شبكة طَرد.
ما هي باقة net / http؟
ال صافي / http package هي إحدى المكتبات القياسية في Go. يوفر مجموعة كاملة من الوظائف والأنواع لبناء عملاء HTTP والخوادم والعمليات الأخرى المستندة إلى HTTP. وتشمل هذه:
- وظائف لعمل طلبات HTTP.
- التعامل مع الطلبات والردود.
- خدمة طلبات HTTP.
- الكائنات ذات الصلة مثل الرؤوس وملفات تعريف الارتباط.
ال صافي / http تدعم الحزمة أيضًا تشفير TLS / SSL و HTTP / 2 والميزات المتقدمة الأخرى مما يجعل الحزمة أداة أساسية لمطوري Go.
تم إنشاء العديد من مكتبات Go وأطر العمل الشائعة ، من مجموعة أدوات الويب Gorilla إلى إطار عمل الويب Echo ، على قمة صافي / http طَرد.
بدء تشغيل خادم HTTP بسيط
يعد بدء تشغيل الخوادم إحدى العمليات الأساسية التي تحتاج إلى فهمها للعمل مع بروتوكول HTTP.
هنا برنامج ل تشغيل خادم بسيط في Go:
طَرد رئيسي
يستورد (
"FMT"
"net / http"
)// المعالج هو معالج طلب واستجابة HTTP نموذجي في Go ؛ التفاصيل لاحقًا
funcمعالج(w http. ResponseWriter ، r * http. طلب) {
// Fprintf ينسق السلسلة إلى كاتب
FMT. Fprintf (ث ، "مرحبا بالعالم!")
}
funcرئيسي() {
http. مقبض"/"، معالج)
http. استمع و سيرف (":8080", لا شيء)
}
ال معالج الدالة هي معالج نموذجي للطلبات والاستجابة لـ http طَرد. تقوم هذه الوظيفة بكتابة السلسلة النصية "Hello، World!" لكاتب استجابة HTTP.
على تشغيل الكود وزيارة http://localhost: 8080/ في متصفح الويب ، من المفترض أن ترى رسالة "Hello، World!" سلسلة معروضة في متصفحك.
التعامل مع الطلبات والردود
يمكنك التعامل مع الطلبات الواردة مع مقبض طريقة http طَرد. ال مقبض تأخذ طريقة في سلسلة مسار ووظيفة معالج.
ال http. طلب الطريقة هي مثيل للطلب الوارد ، ويمكنك استخدام الطرق العديدة للمثيل الخاص بك للتفاعل مع الطلبات إلى المسار.
http. مقبض"/ المستخدمون", func(w http. ResponseWriter ، r * http. طلب) {
يُحوّل ص. طريقة {
قضية"يحصل":
// التعامل مع طلب GET
قضية"بريد":
// معالجة طلب POST
تقصير:
http. خطأ (ث ، "طريقة الطلب غير صالحة"، http. StatusMethodNotAllowed)
}
})
يستخدم الرمز أعلاه http الحزمة لتعريف وظيفة معالج HTTP لملف /users طريق. تستمع وظيفة المعالج إلى طلبات HTTP الواردة على المسار وتعالجها بناءً على طريقة الطلب (على سبيل المثال ، يحصل, بريد، إلخ.)
تأخذ وظيفة المعالج الامتداد ResponseWriter و طلب الأساليب والحجج. ال ResponseWriter هي واجهة تساعد المعالج على كتابة البيانات كاستجابة للعميل ، و طلب هي بنية تحتوي على معلومات حول الطلب الوارد ، مثل طريقة HTTP وعنوان URL والعناوين وما إلى ذلك.
تستخدم وظيفة المعالج أعلاه أ يُحوّل بيان لتحديد طريقة الطلب وتشغيل مجموعات تعليمات برمجية مختلفة بناءً على الطريقة. إذا كانت الطريقة يحصل، سيتعامل المعالج مع ملف يحصل طلب. خلاف ذلك ، فإن الطريقة بريد؛ سوف يتعامل مع بريد طلب.
إذا كانت الطريقة هي أي شيء آخر ، فسيتم إرسال ملف http. خطأ برسالة "طريقة الطلب غير صالحة" و a StatusMethodNotAllowedرمز حالة HTTP إلى العميل.
يمكنك إعادة كتابة السلاسل إلى العميل باستخدام امتداد يكتب أسلوب مثال الكاتب الخاص بك يأخذ شريحة بايت من السلاسل ويكتب السلسلة.
ث. يكتب([]بايت("مرحبا بالعالم!"))
يمكنك استخدام ال اكتب العنوان طريقة ResponseWriter المثيل لكتابة الرؤوس إلى العميل.
ث. WriteHeader (http. موافق)
العمل مع برمجيات HTTP الوسيطة
تتكون البرامج الوسيطة من وظائف تعترض طلبات HTTP الواردة للعمليات قبل أن ينتقل الطلب إلى وظيفة المعالج التالية.
فيما يلي مثال على تسجيل وظيفة معالج البرامج الوسيطة في Go:
funcتسجيل الدخول(http التالي. معالج)http.معالج {
يعود http. المعالجfunc(w http. ResponseWriter ، r * http. طلب) {
// سجل الطلب
التالي. خدمة HTTP (w، r)
// سجل الرد
})
}
ال تسجيل الدخول تأخذ الدالة معالج HTTP وتقوم بإرجاع معالج HTTP جديد. معالج HTTP الذي تم إرجاعه هو وظيفة مجهولة تأخذ كاتب استجابة HTTP وطلب HTTP. تقوم الوظيفة بتسجيل الطلب واستدعاء خدمة HTTP طريقة على التالي معالج HTTP ، ويمرر في كاتب الاستجابة ويطلب كوسيطات.
يمكنك التعامل مع وظائف البرامج الوسيطة بامتداد مقبض طريقة http طَرد. ال مقبض تأخذ الطريقة في المسار والوظيفة الوسيطة.
http. مقبض("/"، loggingMiddleware (http. HandlerFunc (معالج)))
عمليات إعادة التوجيه باستخدام حزمة HTTP
إعادة التوجيه هي عملية شائعة لتطبيقات الويب التي تحيل المستخدمين إلى موارد أو صفحات ويب أخرى.
يمكنك إعادة التوجيه إلى صفحة ويب أخرى باستخدام ملف إعادة توجيه طريقة http طَرد.
http. إعادة توجيه (w، r، " http://example.com"، http. تم تغيير الحالة بشكل دائم)
ال إعادة توجيه طريقة يأخذ في ResponseWriter و طلب المثيلات وعنوان URL للصفحة الجديدة ورمز الحالة لإعادة التوجيه.
يمكنك بناء واجهات برمجة تطبيقات معقدة في Go
ال http الحزمة هي أداة قوية ومرنة لبناء واجهات برمجة التطبيقات المعقدة. يمكنك استخدام مكتبة Go's rich القياسية وغيرها من المكتبات القوية حزم الجهات الخارجية لإضافة وظائف إلى واجهات برمجة التطبيقات الخاصة بك ، مثل اتصال قاعدة البيانات ودعم الويب المختلف إطار أعمال.
باستخدام Go ، يمكنك إنشاء واجهات برمجة تطبيقات قابلة للتطوير وعالية الأداء تتعامل مع حركة مرور الطلبات الكبيرة ومهام معالجة البيانات المعقدة بسهولة.