آموزش جامع کار با API در پایتون: از مبتدی تا پیشرفته 🐍🌐

آموزش جامع کار با 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!")


📚 منابع پیشنهادی

  1. مستندات رسمی کتابخانه requests

  2. لیست APIهای رایگان برای تمرین

  3. آموزش OAuth در پایتون


🎯 پروژه‌های پیشنهادی برای تمرین

  1. ربات خبرخوان (با استفاده از News API)

  2. سیستم پرداخت آنلاین (با درگاه بانکی)

  3. تحلیل احساسات توییت‌ها (با Twitter API)

نکته مهم: قبل از استفاده از هر API، مستندات رسمی آن را مطالعه کنید و به قوانین استفاده توجه نمایید.

Avatar

نویسنده

سیدهادی موسوی

تعداد لایک‌ها: 4

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

ارسال نظر

نظرات