في هذا المنشور في المدونة، سنتناول أساسيات طلبات POST، وكيفية تنفيذها باستخدام Python Requests، وبعض الممارسات الجيدة التي يجب أخذها في الاعتبار. سواء كنت مطورًا متمرسًا أو مبتدئًا، ستوفر لك هذه الدليل كل ما تحتاج إلى معرفته حول طلبات POST.
أساسيات طلبات HTTP
قبل أن نغوص في طلب POST، دعنا أولاً نفهم ما هو طلب HTTP. HTTP تعني بروتوكول نقل النص التشعبي، وهو بروتوكول مستخدم لنقل البيانات عبر الإنترنت. طلب HTTP هو رسالة تُرسل من عميل إلى خادم، تطلب موردًا معينًا. ثم يستجيب الخادم بالمورد المطلوب.

هناك طرق HTTP متنوعة، تُعرف أيضًا باسم طلبات HTTP، كل منها تخدم غرضًا مميزًا وتنقل طبيعة الطلب. أكثر طرق HTTP شيوعًا تشمل GET و POST و PUT و DELETE.
ما هو طلب POST؟
طلب POST هو طريقة مستخدمة في بروتوكول نقل النص التشعبي (HTTP) لإرسال البيانات إلى خادم لإنشاء أو تحديث مورد. يتم تضمين البيانات في جسم الطلب، بدلاً من أن تكون في عنوان URL كما هو الحال مع طلب GET. هذه الطريقة شائعة الاستخدام لتقديم بيانات النماذج أو رفع الملفات.
ما هو Python؟
الآن بعد أن تناولنا أساسيات طلبات HTTP، دعنا نتحدث عن لغة البرمجة التي ستكون رفيقنا الموثوق في هذه الرحلة – Python. بايثون معروفة ببساطتها، وقابليتها للقراءة، ومرونتها. إنها لغة عالية المستوى تتيح للمطورين كتابة كود واضح ومنطقي لمشاريع متنوعة الأحجام. يمكن الحصول على أحدث إصدار من Python بزيارة الموقع الرسمي وتحميله من هناك.

تجعل مكتبات بايثون الواسعة منها مفضلة لدى المطورين، ويضمن تركيبها أن حتى المبتدئين يمكنهم استيعاب مفاهيمها بسرعة.
كيفية عمل طلب POST باستخدام بايثون
لعمل طلب POST باستخدام بايثون، يمكنك استخدام مكتبة requests، وهي مكتبة HTTP شائعة لبايثون. إليك مثال على كيفية إجراء طلب POST:
import requests
# تعريف عنوان URL والبيانات التي سيتم إرسالها في طلب POST
url = 'http://example.com/test/demo_form.php'
data = {'name1': 'value1', 'name2': 'value2'}
# إجراء طلب POST
response = requests.post(url, data=data)
# طباعة رمز الحالة ومحتوى الاستجابة
print(f"رمز الحالة: {response.status_code}")
print(f"محتوى الاستجابة: {response.text}")
في هذا الشيفرة، نقوم بإرسال طلب POST إلى http://example.com/test/demo_form.php مع قطعتين من البيانات: name1 بقيمة value1، وname2 بقيمة value2. يتم استخدام طريقة requests.post لإرسال طلب POST، ثم نطبع رمز الحالة ومحتوى الاستجابة من الخادم.
يرجى ملاحظة أنه لتشغيل هذه الشيفرة، ستحتاج إلى تثبيت مكتبة requests. يمكنك تثبيتها باستخدام pip:
pip install requests

فهم معلمات طلب POST في بايثون.
في بايثون، عند إجراء طلب POST باستخدام مكتبة requests، عادة ما تتعامل مع المعلمات التالية:
url: عنوان URL الذي يتم إرسال طلب POST إليه.data: قاموس، قائمة من القيم المزدوجة، بايت، أو كائن ملف ترغب في إرساله في جسم الطلب.json: كائن JSON للإرسال في جسم الطلب.
إليك تحليل حول كيفية استخدام هذه المعلمات:
import requests
# عنوان URL لطلب POST
url = 'http://example.com/api'
# البيانات التي سيتم إرسالها في جسم طلب POST
data = {
'key1': 'value1',
'key2': 'value2'
}
# إجراء طلب POST
response = requests.post(url, data=data)
# التحقق من الاستجابة
print(response.text)
في هذا المثال، data هو قاموس يحتوي على البيانات التي سيتم إرسالها إلى الخادم. إذا كنت ترسل بيانات JSON، يمكنك استخدام المعلمة json بدلاً من ذلك، والتي تضبط تلقائيًا رأس Content-Type إلى application/json.
بالإضافة إلى ذلك، يمكن لدالة requests.post قبول العديد من المعلمات الأخرى (**kwargs) مثل:
headers: قاموس لرؤوس HTTP التي سيتم إرسالها مع الطلب.cookies: قاموس لملفات تعريف الارتباط التي سيتم إرسالها مع الطلب.files: قاموس للملفات التي سيتم إرسالها مع الطلب.auth: مجموعة لتفعيل التوثيق HTTP.timeout: المدة التي يجب الانتظار فيها ليرسل الخادم البيانات قبل التخلي.allow_redirects: قيمة منطقية. تعيينها إلى True إذا كان يتم السماح بإعادة توجيه POST.
تتيح لك هذه المعلمات تخصيص طلب POST ليتناسب مع متطلبات الخادم الذي تتفاعل معه.
استخدام Apidog لاختبار طلب POST الخاص بك في بايثون
Apidog هي أداة قوية لاختبار واجهات برمجة التطبيقات. تتيح لك إنشاء وحفظ طلبات API، وتنظيمها في مجموعات، ومشاركتها مع فريقك.
إليك كيفية استخدام Apidog لاختبار طلبك POST:
- افتح Apidog وأنشئ طلبًا جديدًا.

2. قم بتعيين أسلوب الطلب إلى POST.

3. أدخل عنوان URL للمورد الذي تريد تحديثه. أضف أي رؤوس إضافية أو معلمات تريد تضمينها ثم انقر على زر "إرسال" لإرسال الطلب.

4. تحقق من أن الاستجابة هي ما توقعت.

أفضل الممارسات لإجراء طلب POST.
عند إجراء طلب POST، من المهم اتباع أفضل الممارسات لضمان أن واجهة برمجة التطبيقات الخاصة بك آمنة، وفعالة، وسهلة الاستخدام. إليك بعض الممارسات الرئيسية:
استخدم JSON لنقل البيانات: JSON هو المعيار لنقل البيانات. إنه مدعوم على نطاق واسع وسهل الاستخدام مع معظم الإطارات.
أمّن واجهة برمجة التطبيقات الخاصة بك: استخدم HTTPS لتشفير البيانات أثناء النقل. نفذ استراتيجيات التوثيق والتفويض لحماية المعلومات الحساسة.
تعامل مع الأخطاء بلباقة: ارجع رموز الحالة HTTP القياسية وقدم رسائل خطأ واضحة لمساعدة العملاء على فهم ما حدث.
ادعم التصفية والترتيب والصفحات: هذه الميزات تحسن قابلية استخدام واجهة برمجة التطبيقات الخاصة بك من خلال السماح للعملاء باسترجاع البيانات التي يحتاجونها فقط.
قم بتخزين البيانات في الذاكرة المؤقتة: يمكن أن تحسن الذاكرة المؤقتة بشكل كبير من أداء واجهة برمجة التطبيقات الخاصة بك عن طريق تقليل الحمل على الخادم وتسريع أوقات الاستجابة.
نسخة واجهة برمجة التطبيقات الخاصة بك: حافظ على إصدارات مختلفة من واجهة برمجة التطبيقات الخاصة بك لضمان التوافق العكسي وللسماح للعملاء بالانتقال إلى إصدارات جديدة وفق وتيرة خاصة بهم.
تحقق من صحة المدخلات: تحقق دائمًا من صحة المدخلات وتكرارها لحماية نفسك من حقن SQL وأنواع الهجمات الأخرى.
وثق واجهة برمجة التطبيقات الخاصة بك: قدم توثيقًا واضحًا لنقاط النهاية الخاصة بواجهة برمجة التطبيقات، بما في ذلك صيغ الطلب والاستجابة المتوقعة، لتسهيل التكامل مع واجهة برمجة التطبيقات الخاصة بك.
استخدم رموز الحالة المناسبة: استخدم رموز الحالة HTTP المناسبة للإشارة إلى نتيجة الطلب. على سبيل المثال، استخدم 201 تم الإنشاء لطلبات POST الناجحة التي تؤدي إلى الإنشاء.
تجنب تحميل معلمات الاستعلام: استخدم معلمات الاستعلام للبيانات الوصفية غير الحساسة وأرسل البيانات الرئيسية والبيانات الحساسة في جسم الطلب.
ستساعدك هذه الممارسات في إنشاء واجهة برمجة تطبيقات قوية وسهلة الاستخدام. إذا كنت بحاجة إلى مزيد من المعلومات التفصيلية أو لديك أسئلة محددة، فلا تتردد في طرحها!
الخاتمة
إرسال طلب POST في بايثون هو مهارة أساسية لأي مطور يعمل مع واجهات برمجة التطبيقات. من خلال الاستفادة من مكتبة requests، يمكنك التفاعل بشكل فعال مع خدمات الويب، وتقديم بيانات النماذج، والتعامل مع استجابات الخادم. تذكر أن تتبع أفضل الممارسات مثل استخدام JSON لنقل البيانات، وتأمين واجهة برمجة التطبيقات الخاصة بك، واختبار طلبك POST باستخدام Apidog، والتحقق من صحة المدخلات لضمان تطبيقات قوية وآمنة.
مع هذه الأدوات والتقنيات، أنت مؤهل تمامًا لدمج بايثون في مشاريع تطوير الويب الخاصة بك واستغلال قوة تواصل HTTP بالكامل.
