Apidog

منصة تطوير API تعاونية متكاملة

تصميم API

توثيق API

تصحيح أخطاء API

محاكاة API

اختبار API الآلي

استكشاف cURL مع بايثون في عام 2024

تعلم كيفية استخدام cURL في بايثون لإجراء طلبات API فعالة. يغطي هذا الدليل الشامل كل شيء من طلبات GET الأساسية إلى الخيارات المتقدمة ومعالجة الأخطاء. اكتشف كيف يمكن أن تعزز cURL تطبيقات بايثون الخاصة بك وتسهل تفاعلاتك مع API.

Amir Hassan

Amir Hassan

Updated on نوفمبر 29, 2024

أصبحت واجهات البرمجة (APIs) جزءًا حيويًا من تطوير الويب الحديث. إنها تتيح للتطبيقات التواصل وتبادل البيانات بسلاسة. إذا كنت تغوص في عالم واجهات البرمجة، فمن المحتمل أنك سمعت عن cURL. إنها أداة قوية لإجراء طلبات HTTP، ولكن هل كنت تعلم أنه يمكنك الاستفادة من قوتها في بايثون أيضًا؟ في هذه التدوينة، سنستكشف كيفية استخدام cURL في بايثون لجعل تفاعلات واجهتك البرمجية أكثر سلاسة وكفاءة.

ولكن قبل أن نبدأ، أود أن أقدم لك Apidog. إنها أداة رائعة تبسط تطوير واجهات البرمجة، والاختبار، والتوثيق. يمكنك تحميل Apidog مجانًا وبدء تحسين مهاراتك في واجهات البرمجة مباشرة!

button

ما هو cURL؟

cURL هي أداة سطر أوامر ومكتبة لنقل البيانات عبر عناوين URL. تُستخدم على نطاق واسع لإجراء طلبات HTTP، وتدعم مجموعة متنوعة من البروتوكولات، بما في ذلك HTTP، HTTPS، FTP، وغير ذلك. يحب المطورون cURL لبساطته ومرونته.

عند استخدامك cURL، يمكنك اختبار النقاط النهائية بسرعة، واسترداد البيانات، وحتى أتمتة المهام التي تتضمن عمليات الشبكة. على سبيل المثال، يمكنك استخدام cURL لإرسال طلب GET إلى واجهة برمجة وتقوم باسترداد البيانات أو نشر البيانات إلى خادم.

لماذا تستخدم cURL في بايثون؟

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

إليك بعض الأسباب لاستخدام cURL في بايثون:

  1. البساطة: تجعل بنية cURL الواضحة تعلمها واستخدامها سهلًا.
  2. المرونة: تدعم cURL بروتوكولات وخيارات متنوعة، مما يتيح لك التعامل مع الطلبات المعقدة.
  3. التكامل: استخدام cURL في بايثون يتيح لك دمج طلبات HTTP بسلاسة في تطبيقات بايثون الخاصة بك.
  4. الكفاءة: cURL فعال جدًا، مما يجعله مناسبًا للتطبيقات عالية الأداء.

البدء باستخدام cURL في بايثون

للبدء في استخدام cURL في بايثون، ستحتاج إلى مكتبة pycurl. إنها واجهة بايثون لـ cURL، تقدم طريقة لتنفيذ أوامر cURL داخل سكربتات بايثون. يمكنك تثبيت pycurl باستخدام pip:

pip install pycurl

بمجرد تثبيت pycurl، تكون جاهزًا لإجراء أول طلب cURL لك في بايثون.

إجراء طلبات واجهة برمجة بسيطة

لنبدأ بمثال بسيط: إجراء طلب GET إلى واجهة برمجة. سنستخدم واجهة برمجة عامة تُرجع بيانات JSON. إليك كيفية القيام بذلك:

import pycurl
import io
import json

# تعريف عنوان URL لنقطة النهاية
url = 'https://api.example.com/data'

# إنشاء مخزن للاحتفاظ بالاستجابة
response_buffer = io.BytesIO()

# تهيئة كائن cURL
curl = pycurl.Curl()

# تعيين عنوان URL وخيارات أخرى
curl.setopt(curl.URL, url)
curl.setopt(curl.WRITEDATA, response_buffer)

# إجراء الطلب
curl.perform()

# الحصول على رمز الاستجابة HTTP
response_code = curl.getinfo(curl.RESPONSE_CODE)

# التحقق مما إذا كان الطلب ناجحًا
if response_code == 200:
    # الحصول على بيانات الاستجابة
    response_data = response_buffer.getvalue().decode('utf-8')
    # تحليل بيانات JSON
    json_data = json.loads(response_data)
    print(json_data)
else:
    print(f'فشل الطلب برمز الحالة {response_code}')

# تنظيف
curl.close()

في هذا المثال، قمنا بـ:

  1. تعريف عنوان URL لنقطة النهاية.
  2. إنشاء مخزن لتخزين الاستجابة.
  3. تهيئة كائن cURL.
  4. تعيين عنوان URL وخيارات أخرى باستخدام curl.setopt.
  5. تنفيذ الطلب باستخدام curl.perform.
  6. التحقق من رمز الاستجابة HTTP لمعرفة ما إذا كان الطلب ناجحًا.
  7. استرداد وتحليل بيانات JSON من الاستجابة.
  8. تنظيف عن طريق إغلاق كائن cURL.

معالجة الاستجابات

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

استجابات JSON

معظم واجهات البرمجة ترجع بيانات JSON، والتي يسهل تحليلها في بايثون. إليك كيفية التعامل مع استجابات JSON:

if response_code == 200:
    response_data = response_buffer.getvalue().decode('utf-8')
    try:
        json_data = json.loads(response_data)
        print(json_data)
    except json.JSONDecodeError:
        print('فشل تحليل استجابة JSON')
else:
    print(f'فشل الطلب برمز الحالة {response_code}')

معالجة الأخطاء

من الضروري التعامل مع الأخطاء بشكل مناسب لضمان بقاء تطبيقك قويًا. إليك مثال على معالجة أنواع مختلفة من الأخطاء:

try:
    curl.perform()
    response_code = curl.getinfo(curl.RESPONSE_CODE)
    if response_code == 200:
        response_data = response_buffer.getvalue().decode('utf-8')
        json_data = json.loads(response_data)
        print(json_data)
    else:
        print(f'فشل الطلب برمز الحالة {response_code}')
except pycurl.error as e:
    errno, errstr = e.args
    print(f'خطأ cURL: {errstr} (رقم الخطأ: {errno})')
finally:
    curl.close()

خيارات cURL المتقدمة

تقدم cURL العديد من الخيارات المتقدمة لتخصيص طلباتك. إليك بعض الخيارات الشائعة الاستخدام:

  • رؤوس HTTP: يمكنك تعيين رؤوس مخصصة باستخدام خيار HTTPHEADER.
  • أوقات الانتظار: استخدم خيارات TIMEOUT و CONNECTTIMEOUT لتعيين أوقات الانتظار للطلب.
  • المصادقة: استخدم خيار USERPWD للمصادقة الأساسية.

إليك مثال لتعيين رؤوس مخصصة ووقت انتظار:

headers = [
    'Content-Type: application/json',
    'Authorization: Bearer your_token'
]

curl.setopt(curl.HTTPHEADER, headers)
curl.setopt(curl.TIMEOUT, 10)

معالجة الأخطاء

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

try:
    curl.perform()
    response_code = curl.getinfo(curl.RESPONSE_CODE)
    if response_code == 200:
        response_data = response_buffer.getvalue().decode('utf-8')
        try:
            json_data = json.loads(response_data)
            print(json_data)
        except json.JSONDecodeError:
            print('فشل تحليل استجابة JSON')
    else:
        print(f'فشل الطلب برمز الحالة {response_code}')
except pycurl.error as e:
    errno, errstr = e.args
    print(f'خطأ cURL: {errstr} (رقم الخطأ: {errno})')
finally:
    curl.close()

أمثلة من العالم الحقيقي

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

إرسال طلبات POST

إرسال طلب POST مع cURL في بايثون هو أمر مباشر. يمكنك إرسال بيانات JSON أو بيانات نموذج حسب الحاجة. إليك كيفية إرسال طلب POST مع بيانات JSON:

post_data = json.dumps({'key': 'value'})
headers = ['Content-Type: application/json']

curl.setopt(curl.POST, 1)
curl.setopt(curl.POSTFIELDS, post_data)
curl.setopt(curl.HTTPHEADER, headers)

معالجة بيانات النموذج

إذا كنت بحاجة إلى إرسال بيانات نموذج، يمكنك استخدام خيار POSTFIELDS مع سلسلة مشفرة URL:

form_data = 'key1=value1&key2=value2'

curl.setopt(curl.POST, 1)
curl.setopt(curl.POSTFIELDS, form_data)
curl.setopt(curl.HTTPHEADER, ['Content-Type: application/x-www-form-urlencoded'])

العمل مع تحميل الملفات

يعد تحميل الملفات مهمة شائعة في تطبيقات الويب. مع cURL، يمكنك التعامل مع تحميل الملفات بكل سهولة. إليك كيفية تحميل ملف باستخدام cURL في بايثون:

curl.setopt(curl.POST, 1)
curl.setopt(curl.HTTPPOST, [
    ('file', (curl.FORM_FILE, '/path/to/file'))
])

cURL و Apidog

إذا كنت تبحث عن أداة واجهة برمجة تطبيقات يمكن أن تعمل بسلاسة مع واجهات برمجة التطبيقات cURL، فأنت محظوظ!

أقدم لك Apidog - منصة شاملة لتطوير واجهات البرمجة مع أدوات كاملة لعملية واجهة البرمجة بأكملها. مع Apidog، يمكنك بناء، واختبار، وتخيل، وتوثيق واجهات البرمجة ضمن تطبيق واحد!

button
واجهة Apidog

ابدأ العمل مع واجهات برمجة التطبيقات cURL من خلال استيرادها إلى Apidog

يدعم Apidog المستخدمين الذين يرغبون في استيراد أوامر cURL إلى Apidog. في مشروع فارغ، انقر على الزر الأرجواني + في الجزء العلوي الأيسر من نافذة Apidog، وحدد استيراد cURL.

عينة كود cURL لـ Stripe

انسخ والصق أمر cURL في الصندوق المعروض على شاشتك.

نجاح استيراد كود cURL

إذا كان الأمر ناجحًا، يجب أن تكون الآن قادرًا على رؤية أمر cURL في شكل طلب واجهة برمجة.

توليد كود بايثون على الفور

يمكن لـ Apidog توليد كود بايثون اللازم لتطبيقك في غمضة عين.

أولاً، ابحث عن زر </> توليد كود في أي واجهة برمجة أو طلب، واختر توليد كود عميل من قائمة السحب لأسفل.

بعد ذلك، اختر بايثون، وابحث عن قسم cURL. يجب أن ترى الآن الكود الذي تم توليده لـ cURL. كل ما عليك فعله هو نسخ ولصق ذلك إلى IDE الخاص بك (بيئة تطوير متكاملة) ومتابعة تطوير تطبيقك.

الخاتمة

استخدام cURL في بايثون يفتح عالمًا من الاحتمالات لجعل طلبات واجهة البرمجة أكثر كفاءة وقوة. سواء كنت تسترد البيانات، أو ترسل طلبات POST، أو تتعامل مع تحميل الملفات، فإن cURL يوفر حلاً متعدد الاستخدامات وقويًا.

تذكر، على الرغم من أن cURL قوي، إلا أنه من الجيد دائمًا استكشاف الأدوات التي يمكن أن تبسط سير عملك. Apidog هي واحدة من تلك الأدوات التي يمكن أن تجعل تطوير واجهات البرمجة، والاختبار، والتوثيق أسهل. لا تنسى تحميل Apidog مجانًا وتعزيز تطوير واجهات البرمجة الخاصة بك!

من خلال دمج cURL مع بايثون، يمكنك تعزيز تطبيقاتك وتبسيط عملية تطويرك. نتمنى لك الشيفرة السعيدة!