
آموزش جامع کار با API در پایتون: از مبتدی تا پیشرفته 🐍🌐
API (مخفف Application Programming Interface) یک واسطه نرمافزاری است که به برنامهها اجازه میدهد با یکدیگر ارتباط برقرار کنند. امروزه بیش از 90% برنامههای مدرن از API استفاده میکنند.
✅ کاربردهای API
-
دریافت داده از وبسایتها (مثل اخبار، آب و هوا)
-
ارسال پیام خودکار (تلگرام، واتساپ)
-
پرداختهای اینترنتی (درگاه بانکی)
-
هوش مصنوعی (مثل ChatGPT API)
📌 انواع API در پایتون
نوع API | کتابخانه | کاربرد |
---|---|---|
REST API | requests |
بیشترین استفاده |
GraphQL | gql |
کوئریهای پیچیده |
WebSocket | websockets |
ارتباط بلادرنگ |
SOAP | zeep |
سیستمهای سازمانی |
🚀 شروع کار با REST API در پایتون
1. نصب کتابخانه requests
pip install requests
2. ارسال درخواست GET (دریافت داده)
import requests
# دریافت اطلاعات کاربر از GitHub API
response = requests.get('https://api.github.com/users/octocat')
data = response.json()
print(f"نام کاربر: {data['login']}")
print(f"تعداد ریپوها: {data['public_repos']}")
3. ارسال درخواست POST (ارسال داده)
# ثبت نظر جدید در یک API فرضی
url = 'https://jsonplaceholder.typicode.com/posts'
payload = {
'title': 'عنوان تست',
'body': 'متن پیام',
'userId': 1
}
response = requests.post(url, json=payload)
print(f"کد وضعیت: {response.status_code}")
print(f"پاسخ سرور: {response.json()}")
🔑 کار با API Key (احراز هویت)
1. API Key در هدر
headers = {
'Authorization': 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json'
}
response = requests.get('https://api.example.com/data', headers=headers)
2. API Key در پارامترها
params = {
'api_key': 'YOUR_API_KEY',
'city': 'Tehran'
}
response = requests.get('https://api.weather.com/data', params=params)
🛠️ پروژه عملی: ساخت ربات آب و هوا
import requests
def get_weather(city):
API_KEY = "YOUR_OPENWEATHER_API_KEY"
base_url = "https://api.openweathermap.org/data/2.5/weather"
params = {
'q': city,
'appid': API_KEY,
'units': 'metric',
'lang': 'fa'
}
response = requests.get(base_url, params=params)
data = response.json()
if response.status_code == 200:
print(f"وضعیت هوا در {city}:")
print(f"دما: {data['main']['temp']} درجه سانتیگراد")
print(f"شرایط: {data['weather'][0]['description']}")
else:
print("خطا در دریافت داده!")
get_weather("Tehran")
⚡ بهینهسازی درخواستها
1. استفاده از Session
session = requests.Session()
session.headers.update({'Authorization': 'Bearer YOUR_TOKEN'})
# درخواستهای متعدد با یک Session
response1 = session.get('https://api.example.com/data1')
response2 = session.get('https://api.example.com/data2')
2. مدیریت خطاها
try:
response = requests.get('https://api.example.com/data', timeout=5)
response.raise_for_status() # بررسی خطاهای HTTP
except requests.exceptions.RequestException as err:
print(f"خطا در ارتباط با API: {err}")
🔒 امنیت در کار با API
✅ هرگز API Key را مستقیماً در کد قرار ندهید (از متغیرهای محیطی استفاده کنید)
✅ از HTTPS به جای HTTP استفاده کنید
✅ محدود کردن دسترسی API Key به IPهای خاص
مثال استفاده از متغیر محیطی:
import os
from dotenv import load_dotenv
load_dotenv() # بارگذاری متغیرها از فایل .env
API_KEY = os.getenv('API_KEY')
📊 کار با APIهای معروف
1. Telegram Bot API
import requests
TOKEN = "YOUR_TELEGRAM_BOT_TOKEN"
chat_id = "USER_CHAT_ID"
text = "سلام! این یک پیام تست است."
url = f"https://api.telegram.org/bot{TOKEN}/sendMessage"
params = {'chat_id': chat_id, 'text': text}
requests.post(url, params=params)
2. Twitter API
import tweepy
auth = tweepy.OAuthHandler("API_KEY", "API_SECRET")
auth.set_access_token("ACCESS_TOKEN", "ACCESS_SECRET")
api = tweepy.API(auth)
api.update_status("توییت جدید از طریق API!")
📚 منابع پیشنهادی
🎯 پروژههای پیشنهادی برای تمرین
-
ربات خبرخوان (با استفاده از News API)
-
سیستم پرداخت آنلاین (با درگاه بانکی)
-
تحلیل احساسات توییتها (با Twitter API)
نکته مهم: قبل از استفاده از هر API، مستندات رسمی آن را مطالعه کنید و به قوانین استفاده توجه نمایید.

نویسنده
سیدهادی موسوی
Tags: #علمی #برنامه_نویسی #مقاله