الدرس 14 من 20

العمل مع واجهات البرمجة

مكتبة Requests

3 دقيقة للقراءة

مكتبة requests تجعل استدعاءات HTTP بسيطة وبأسلوب بايثون. إنها الأساس للتفاعل مع واجهات الويب.

التثبيت

pip install requests

إجراء طلبات GET

import requests

# طلب GET بسيط
response = requests.get("https://api.github.com/users/octocat")

# تحقق من النجاح
if response.status_code == 200:
    data = response.json()
    print(data["name"])

إجراء طلبات POST

import requests
import json

url = "https://api.openai.com/v1/chat/completions"

headers = {
    "Authorization": "Bearer sk-your-key",
    "Content-Type": "application/json"
}

data = {
    "model": "gpt-4",
    "messages": [
        {"role": "user", "content": "مرحباً!"}
    ]
}

response = requests.post(url, headers=headers, json=data)
result = response.json()
print(result["choices"][0]["message"]["content"])

كائن الاستجابة

response = requests.get("https://api.example.com/data")

# معلومات الحالة
response.status_code      # 200
response.ok               # True (إذا كان 200-299)
response.reason           # "OK"

# المحتوى
response.text             # استجابة نصية خام
response.json()           # تحليل كـ JSON (يرجع قاموس)
response.content          # بايتات خام

# الترويسات
response.headers          # قاموس ترويسات الاستجابة
response.headers["Content-Type"]

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

import requests

try:
    response = requests.get(url, timeout=10)
    response.raise_for_status()  # يرفع استثناء لـ 4xx/5xx
    data = response.json()
except requests.Timeout:
    print("انتهت مهلة الطلب")
except requests.HTTPError as e:
    print(f"خطأ HTTP: {e}")
except requests.RequestException as e:
    print(f"فشل الطلب: {e}")

الخيارات الشائعة

# المهلة (مهمة للموثوقية)
response = requests.get(url, timeout=30)

# معاملات الاستعلام
response = requests.get(url, params={"page": 1, "limit": 10})
# ينتج: url?page=1&limit=10

# ترويسات مخصصة
response = requests.get(url, headers={"User-Agent": "MyApp/1.0"})

# جسم JSON (يُسلسل تلقائياً)
response = requests.post(url, json={"key": "value"})

مثال عملي للذكاء الاصطناعي

import requests
import os

def chat_completion(prompt, model="gpt-4"):
    """إجراء طلب إكمال محادثة إلى OpenAI."""
    url = "https://api.openai.com/v1/chat/completions"

    headers = {
        "Authorization": f"Bearer {os.getenv('OPENAI_API_KEY')}",
        "Content-Type": "application/json"
    }

    data = {
        "model": model,
        "messages": [{"role": "user", "content": prompt}],
        "temperature": 0.7
    }

    response = requests.post(url, headers=headers, json=data, timeout=60)
    response.raise_for_status()

    return response.json()["choices"][0]["message"]["content"]

# الاستخدام
answer = chat_completion("ما هو بايثون؟")
print(answer)

بعد ذلك، سنتعلم أنماط مصادقة API الصحيحة. :::

اختبار

الوحدة 4: العمل مع واجهات البرمجة

خذ الاختبار