
مرحباً بك في الدرس الحادي عشر من سلسلة تعلم بايثون من الصفر حتى بناء API عملي. بعد أن تعلمنا أساسيات بايثون وكيفية إدارة الحزم، حان الوقت الآن لفهم كيف تتواصل التطبيقات مع بعضها عبر الإنترنت. في هذا الدرس، سنتعرف على بروتوكول HTTP ومبادئ REST API، وهما الأساس الذي ستبني عليه مشروعك العملي.
HTTP هو اختصار لـ HyperText Transfer Protocol، وهو البروتوكول الذي تستخدمه المتصفحات والتطبيقات للتواصل مع الخوادم. ببساطة، هو لغة التواصل بين العميل (مثل متصفحك) والخادم (مثل موقع ويب).
عندما تفتح موقعاً في المتصفح، يرسل المتصفح طلباً HTTP إلى الخادم، ثم يرد الخادم برسالة تحتوي على البيانات المطلوبة. هذه العملية تحدث في أجزاء من الثانية.
كل طلب HTTP يتكون من عدة أجزاء رئيسية:
/users أو /tasks.عندما يرد الخادم، يرسل:
REST API هو أسلوب لتصميم واجهات برمجة التطبيقات (APIs) باستخدام مبادئ HTTP. REST تعني Representational State Transfer. الهدف هو جعل API بسيطاً وقابلاً للتوسع.
المبادئ الأساسية لـ REST:
/tasks للمهام، /users للمستخدمين.لنكتب كوداً بسيطاً يرسل طلب HTTP حقيقي إلى خادم تجريبي. سنستخدم مكتبة requests التي تعلمنا تثبيتها في الدرس السابق.
# مثال: إرسال طلب GET إلى خادم تجريبي
import requests
# عنوان الخادم التجريبي
url = "https://jsonplaceholder.typicode.com/posts/1"
# إرسال الطلب
response = requests.get(url)
# طباعة رمز الحالة
print(f"رمز الحالة: {response.status_code}")
# طباعة البيانات المستلمة
print("البيانات:")
print(response.json())
عند تشغيل هذا الكود، سترى رمز الحالة 200 (نجاح) وبيانات JSON تحتوي على معلومات عن منشور تجريبي.
1. نستورد مكتبة requests التي تسمح لنا بإرسال طلبات HTTP بسهولة.
2. نحدد عنوان URL الذي نريد الاتصال به. في هذا المثال، نستخدم خادماً تجريبياً يوفر بيانات وهمية.
3. نستخدم الدالة requests.get() لإرسال طلب GET. هذه الدالة ترجع كائن استجابة.
4. نطبع رمز الحالة باستخدام response.status_code. الرقم 200 يعني أن الطلب نجح.
5. نستخدم response.json() لتحويل البيانات المستلمة من JSON إلى قاموس بايثون، ثم نطبعها.
requests باستخدام pip install requests.response.status_code قبل استخدام البيانات.response.json()./tasks يمثل قائمة المهام، بينما /tasks/1 يمثل مهمة محددة برقم 1. هذا التصميم يجعل API سهل الفهم والاستخدام.
لنرى كيف نرسل بيانات جديدة إلى الخادم باستخدام طلب POST:
# مثال: إرسال طلب POST لإنشاء مورد جديد
import requests
url = "https://jsonplaceholder.typicode.com/posts"
# البيانات التي نريد إرسالها
new_post = {
"title": "درس HTTP",
"body": "هذا محتوى الدرس",
"userId": 1
}
# إرسال الطلب مع البيانات
response = requests.post(url, json=new_post)
# طباعة رمز الحالة والبيانات الجديدة
print(f"رمز الحالة: {response.status_code}")
print("المورد الجديد:")
print(response.json())
في هذا المثال، نستخدم requests.post() ونمرر البيانات باستخدام الوسيط json=. الخادم سينشئ مورداً جديداً ويرد برمز الحالة 201 (تم الإنشاء).
تخيل أنك تريد بناء تطبيق لإدارة المهام. المستخدمون يحتاجون إلى:
بدون HTTP و REST API، سيكون من المستحيل بناء تطبيق ويب أو تطبيق جوال يتواصل مع خادم مركزي. هذا هو الأساس الذي ستبني عليه مشروعك في الدروس القادمة.
https://jsonplaceholder.typicode.com/usersتلميح: استخدم response.json() لتحويل البيانات إلى قائمة، ثم استخدم التقطيع (slicing) للحصول على العناصر الثلاثة الأولى.
في الدرس القادم، سننتقل إلى التطبيق العملي ونتعلم كيفية تثبيت FastAPI وإنشاء أول endpoint حقيقي. استعد لبناء أول API لك!
جاري تحميل التقييمات...