التفاعل مع الويب باستخدام APIs

Amine
15/09/2024

تتيح واجهات برمجة التطبيقات (APIs) للتطبيقات البرمجية المختلفة التواصل مع بعضها البعض. تقدم العديد من الخدمات، مثل مزودي بيانات الطقس ومنصات التواصل الاجتماعي والمؤسسات المالية، واجهات برمجة تطبيقات يمكنك استخدامها للتفاعل مع بياناتهم من خلال برامج بايثون.

إجراء طلب بسيط باستخدام API

للتفاعل مع API، تقوم عادةً بإرسال طلب HTTP إلى عنوان URL محدد وتتلقى استجابة. مكتبة requests تسهل هذا الأمر. دعونا نستخدمها لإجراء طلب بسيط إلى واجهة برمجة تطبيقات عامة.

على سبيل المثال، يمكننا استخدام واجهة JSONPlaceholder، وهي واجهة مجانية على الإنترنت لاختبار وبرمجة REST API:

import requests

response = requests.get("https://jsonplaceholder.typicode.com/posts/1")
data = response.json()
print(data)

يقوم هذا الكود بإرسال طلب GET إلى عنوان URL ويستقبل البيانات بتنسيق JSON. تقوم طريقة json() بتحويل هذه البيانات إلى قاموس بايثون يمكنك التعامل معه بشكل عادي.

إرسال بيانات إلى API

في بعض الأحيان تحتاج إلى إرسال بيانات إلى API، مثل عندما تقوم بإنشاء مورد جديد أو تقديم نموذج. يمكنك القيام بذلك باستخدام طلب POST. إليك كيفية إرسال بعض البيانات إلى JSONPlaceholder API:

url = "https://jsonplaceholder.typicode.com/posts"
payload = {
    "title": "foo",
    "body": "bar",
    "userId": 1
}

response = requests.post(url, json=payload)
print(response.status_code)  # يجب أن يطبع 201 للإشارة إلى نجاح الإنشاء
print(response.json())  # طباعة بيانات الاستجابة

في هذا المثال، يقوم json=payload تلقائيًا بتحويل القاموس إلى سلسلة JSON، التي يتم إرسالها إلى الخادم.

تمارين

التمرين 1

استخدم OpenWeatherMap API للحصول على بيانات الطقس الحالية لمدينة معينة. اطبع درجة الحرارة بالدرجة المئوية. ستحتاج إلى الاشتراك للحصول على مفتاح API مجاني من OpenWeatherMap.

import requests

city = "London"
api_key = "YOUR_API_KEY"
url = f"http://api.openweathermap.org/data/2.5/weather?q={city}&appid={api_key}&units=metric"

response = requests.get(url)
weather_data = response.json()

temperature = weather_data['main']['temp']
print(f"The current temperature in {city} is {temperature}°C")

التمرين 2

استخدم واجهة JSONPlaceholder API لجلب قائمة بالمستخدمين واطبع أسماءهم وعناوين بريدهم الإلكتروني.

import requests

response = requests.get("https://jsonplaceholder.typicode.com/users")
users = response.json()

for user in users:
    print(f"Name: {user['name']}, Email: {user['email']}")

التمرين 3

اكتب برنامجًا يرسل طلب POST إلى JSONPlaceholder لإنشاء مشاركة جديدة. اطبع الاستجابة لرؤية المشاركة التي تم إنشاؤها.

import requests

url = "https://jsonplaceholder.typicode.com/posts"
payload = {
    "title": "My New Post",
    "body": "This is the content of my new post.",
    "userId": 1
}

response = requests.post(url, json=payload)
print(response.status_code)  # يجب أن يطبع 201 للإشارة إلى نجاح الإنشاء
print(response.json())  # طباعة المشاركة التي تم إنشاؤها

عمل رائع! لقد تعلمت كيفية التفاعل مع الويب باستخدام واجهات برمجة التطبيقات (APIs)، وهي مهارة قوية لبناء تطبيقات تحتاج إلى التواصل مع الخدمات الخارجية.

التعليقات

اترك تعليقاً