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

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

تجعل المكتبات الواسعة لـ Python منها المفضلة بين المطورين، كما تضمن صيغتها أن يتمكن حتى المبتدئون من فهم مفاهيمها بسرعة. لذا، لماذا لا نستفيد من قوة Python لجعل طلبات PUT لدينا أكثر سلاسة من أي وقت مضى؟
كيفية إجراء طلب PUT باستخدام Python
لإجراء طلب PUT باستخدام Python، ستحتاج إلى استخدام مكتبة requests. تتيح لك هذه المكتبة إرسال طلبات HTTP/1.1 بسهولة تامة.
في Python، يمكنك إجراء طلب PUT باستخدام مكتبة requests، وهي مكتبة HTTP شائعة لإجراء طلبات HTTP. إذا لم يكن لديك مثبتة، يمكنك تثبيتها باستخدام:
pip install requests
إليك مثال حول كيفية إجراء طلب PUT باستخدام مكتبة requests:
import requests
url = "https://example.com/api/resource"
data = {"key1": "value1", "key2": "value2"}
headers = {
"Content-Type": "application/json",
"Authorization": "Bearer your_access_token" # ضمن أي رؤوس ضرورية
}
response = requests.put(url, json=data, headers=headers)
# تحقق من الاستجابة
if response.status_code == 200:
print("طلب PUT ناجح")
print("الاستجابة:", response.json())
else:
print("طلب PUT فشل")
print("كود الحالة:", response.status_code)
print("الاستجابة:", response.text)
في هذا المثال:
urlهو نقطة النهاية حيث تريد إرسال طلب PUT.dataهي البيانات التي تريد إرسالها في جسم الطلب. يمكنك تغييرها بناءً على متطلبات واجهة برمجة التطبيقات الخاصة بك.headersهو قاموس يحتوي على أي رؤوس إضافية تحتاج إلى تضمينها، مثل رؤوس المصادقة.responseتحتوي على استجابة الخادم لطلب PUT.
تأكد من استبدال URL، البيانات، والرؤوس بالقيم الفعلية الخاصة بك. عدل نوع المحتوى ورؤوس المصادقة وفقًا لمواصفات واجهة برمجة التطبيقات الخاصة بك.
ملاحظة: يفترض هذا المثال أنك تعمل مع بيانات JSON. إذا كانت واجهة برمجة التطبيقات الخاصة بك تتطلب نوع محتوى أو تنسيق بيانات مختلف، قد تحتاج إلى تعديل الكود وفقًا لذلك.
إليك أمثلة على أنواع محتوى وتنسيقات بيانات مختلفة:
المثال 1: إرسال بيانات نموذج
import requests
url = "https://example.com/api/resource"
data = {"key1": "value1", "key2": "value2"}
headers = {
"Content-Type": "application/x-www-form-urlencoded",
"Authorization": "Bearer your_access_token"
}
response = requests.put(url, data=data, headers=headers)
if response.status_code == 200:
print("طلب PUT ناجح")
print("الاستجابة:", response.text)
else:
print("طلب PUT فشل")
print("كود الحالة:", response.status_code)
print("الاستجابة:", response.text)
المثال 2: إرسال بيانات XML
import requests
url = "https://example.com/api/resource"
data = """
<root>
<key1>value1</key1>
<key2>value2</key2>
</root>
"""
headers = {
"Content-Type": "application/xml",
"Authorization": "Bearer your_access_token"
}
response = requests.put(url, data=data, headers=headers)
if response.status_code == 200:
print("طلب PUT ناجح")
print("الاستجابة:", response.text)
else:
print("طلب PUT فشل")
print("كود الحالة:", response.status_code)
print("الاستجابة:", response.text)
المثال 3: إرسال نص عادي
import requests
url = "https://example.com/api/resource"
data = "هذه بيانات نص عادي."
headers = {
"Content-Type": "text/plain",
"Authorization": "Bearer your_access_token"
}
response = requests.put(url, data=data, headers=headers)
if response.status_code == 200:
print("طلب PUT ناجح")
print("الاستجابة:", response.text)
else:
print("طلب PUT فشل")
print("كود الحالة:", response.status_code)
print("الاستجابة:", response.text)
قم بتعديل Content-Type وتنسيق data بناءً على متطلبات واجهة برمجة التطبيقات الخاصة بك. دائمًا ما يجب الرجوع إلى مستندات واجهة برمجة التطبيقات للتأكد من استخدامك لنوع المحتوى وتنسيق البيانات الصحيحين.

فهم معلمات طلب PUT في Python.
عند إجراء طلب PUT، هناك عدة معلمات يمكنك استخدامها لتخصيص الطلب. إليك بعض المعلمات الأكثر شيوعًا:
- URL: عنوان URL للمورد الذي تريد تحديثه.
- Data: البيانات التي تريد إرسالها في طلب PUT. يمكنك استخدام معلمة
jsonلإرسال بيانات JSON أو معلمةdataلإرسال بيانات مشفرّة في النموذج. - Headers: الرؤوس التي تريد تضمينها في طلب PUT. يمكنك استخدام معلمة
headersلتحديد رؤوس مثلContent-TypeوAuthorization، وما إلى ذلك. - Authentication: إذا كانت نقطة النهاية تتطلب المصادقة، يمكنك استخدام معلمة
authلتوفير بيانات اعتماد المصادقة. - Timeout: يمكنك تعيين مهلة للطلب باستخدام معلمة
timeout. يحدد ذلك عدد الثواني التي ننتظرها للحصول على استجابة قبل انتهاء المهلة. - Proxies: إذا كنت بحاجة إلى استخدام وكيل لإجراء الطلب، يمكنك استخدام معلمة
proxiesلتحديد عنوان URL الخاص بالوكيل. - Verify: إذا كنت تريد التحقق من شهادة SSL للخادم، يمكنك تعيين معلمة
verifyإلىTrue. إذا كنت تريد تعطيل التحقق من الشهادة، يمكنك تعيينه إلىFalse. - Allow redirects: بشكل افتراضي، ستتبع
requestsإعادة التوجيه تلقائيًا. إذا كنت تريد تعطيل هذا السلوك، يمكنك تعيين معلمةallow_redirectsإلىFalse.
إليك مثال حول كيفية استخدام معلمة data لإرسال طلب PUT:
import requests
url = 'https://api.example.com/resource'
payload = {'key1': 'value1', 'key2': 'value2'}
r = requests.put(url, data=payload)
في هذا المثال، نحن نرسل طلب PUT إلى https://api.example.com/resource مع حمولة {'key1': 'value1', 'key2': 'value2'}.
استخدام Apidog لاختبار طلب PUT الخاص بك في Python
Apidog هي أداة قوية لاختبار واجهات برمجة التطبيقات. تتيح لك إنشاء وحفظ طلبات واجهة برمجة التطبيقات، وتنظيمها في مجموعات، ومشاركتها مع فريقك.
إليك كيفية استخدام Apidog لاختبار طلب PUT الخاص بك:
- افتح Apidog وأنشئ طلبًا جديدًا.

2. قم بتعيين طريقة الطلب إلى PUT.

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

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

أفضل الممارسات لإجراء طلب PUT.
عند إجراء طلب PUT، من المهم التعامل مع الأخطاء بشكل صحيح. يجب عليك دائمًا التحقق من كود الحالة للاستجابة لضمان نجاح الطلب. يجب عليك أيضًا التعامل مع أي أخطاء قد تحدث أثناء الطلب.
إليك بعض أفضل الممارسات لإجراء طلب PUT في Python:
- التعامل مع الأخطاء: قم دائمًا بتضمين التعامل المناسب مع الأخطاء في كودك للتأكد من عدم تعطل برنامجك عند حدوث خطأ. يمكنك استخدام التعليمات
tryوexceptللتعامل مع الأخطاء في Python. على سبيل المثال، يمكنك التقاط جميع الاستثناءات باستخدام استثناء الفئة الأساسيةExceptionأو التقاطها بشكل منفصل وفعل أشياء مختلفة. - المصادقة: تتطلب بعض نقاط النهاية المصادقة باستخدام الرؤوس أو الرموز أو بيانات اعتماد المستخدم. تأكد من أن طلبك يتضمن هذه عندما يكون ذلك ضروريًا. يمكنك استخدام معلمة
authفي مكتبةrequestsلتوفير بيانات اعتماد المصادقة. على سبيل المثال، يمكنك استخدام المصادقة الأساسية مع الفئةHTTPBasicAuthالتي تقدمها مكتبةrequests. إذا كنت تصل إلى عنوان URL يتطلب مصادقة Windows، يمكنك استخدام مكتبةRequests-NTLM. - الأمان: عند إجراء طلب PUT، تأكد من إرسال البيانات بشكل آمن. إذا كنت ترسل بيانات عبر HTTP، يُوصى باستخدام HTTPS بدلاً من ذلك. يمكنك التحقق من أن شهادتك جيدة عن طريق تشغيل
openssl s_client -showcerts -connect example.com:443من سطر الأوامر والتحقق من أنه يُبلغVerify return code: 0 (ok). يمكنك أيضًا تعطيل التحقق من شهادة الأمان في طلبات Python باستخدام مدير سياق يقوم بتغيير الطلبات ويجعلverify=Falseهو الافتراضي ويخفف من التحذير.
الخاتمة
في هذه التدوينة، استكشفنا ما هو طلب PUT، كيفية إجراء طلب PUT باستخدام Python، وكيفية اختبار طلب PUT الخاص بك باستخدام Apidog. كما ناقشنا المعلمات المختلفة التي يمكنك استخدامها لتخصيص طلب PUT الخاص بك. مع هذه المعرفة، ينبغي أن تكون قادرًا على استخدام طلبات PUT بثقة في مشاريع تطوير الويب الخاصة بك.



![[دليل] تحويل واجهات برمجة التطبيقات SOAP إلى واجهات برمجة التطبيقات REST](https://assets.apidog.com/blog/2024/02/convert-soap-to-rest-cover.png)