آموزش API در پایتون
API یکی از مهمترین مفاهیم در دنیای برنامهنویسی و توسعه نرمافزار است. با استفاده از API میتوانیم برنامههای مختلف را به یکدیگر متصل کنیم و اطلاعات را بین آنها جابهجا کنیم.
در این آموزش با مفهوم API، REST API، Endpoint، JSON، درخواستهای GET و POST، پارامترها، Headers و API Key آشنا میشویم و در نهایت یک مثال کاربردی با پایتون اجرا میکنیم.
فهرست مطالب
API چیست؟
API مخفف Application Programming Interface است.
API مجموعهای از قوانین و روشهاست که به برنامههای مختلف اجازه میدهد با یکدیگر ارتباط برقرار کنند.
برای مثال تصور کنید یک اپلیکیشن هواشناسی میخواهد دمای یک شهر را نمایش دهد. این برنامه میتواند اطلاعات آبوهوا را از یک سرویس API دریافت کند.
چرا API مهم است؟
امروزه بسیاری از برنامهها و سرویسهای اینترنتی از API استفاده میکنند.
- ارتباط بین اپلیکیشن و سرور
- دریافت اطلاعات از سرویسهای آنلاین
- ارسال اطلاعات به سرور
- اتصال برنامهها به یکدیگر
- ساخت اپلیکیشنهای موبایل و وب
- کار با سرویسهای هوش مصنوعی
برای مثال بسیاری از سرویسهای AI نیز API در اختیار برنامهنویسان قرار میدهند.
REST API چیست؟
REST یکی از معماریهای رایج برای طراحی APIهای وب است.
در REST معمولاً از متدهای HTTP برای انجام عملیات مختلف استفاده میشود.
- GET برای دریافت اطلاعات
- POST برای ایجاد یا ارسال اطلاعات
- PUT برای بهروزرسانی اطلاعات
- PATCH برای بهروزرسانی بخشی از اطلاعات
- DELETE برای حذف اطلاعات
Endpoint چیست؟
Endpoint آدرسی است که برای دسترسی به یک بخش مشخص از API استفاده میشود.
برای مثال:
https://api.example.com/users
در این مثال مسیر
/users
میتواند Endpoint مربوط به کاربران باشد.
Request و Response چیست؟
زمانی که برنامه ما اطلاعاتی را از API درخواست میکند، یک Request ارسال میشود.
سرور پس از پردازش درخواست، یک Response برمیگرداند.
Client
|
| Request
↓
API Server
|
| Response
↓
Client
JSON چیست؟
بسیاری از APIها اطلاعات را با فرمت JSON ارسال میکنند.
برای مثال:
{
"name": "Ali",
"age": 25,
"city": "Tehran"
}
JSON ساختاری شبیه دیکشنری پایتون دارد و برای انتقال اطلاعات بین برنامهها بسیار رایج است.
GET در API
از GET معمولاً برای دریافت اطلاعات استفاده میشود.
با کتابخانه Requests میتوانیم چنین درخواستی ارسال کنیم:
import requests
response = requests.get(
"https://api.example.com/users"
)
print(response.status_code)
برای آشنایی کاملتر با Requests میتوانید آموزش Requests در پایتون را مطالعه کنید.
POST در API
POST معمولاً برای ارسال اطلاعات به API استفاده میشود.
import requests
data = {
"name": "Ali",
"age": 25
}
response = requests.post(
"https://api.example.com/users",
json=data
)
print(response.status_code)
Query Parameters
گاهی API برای جستجو یا فیلتر اطلاعات به پارامتر نیاز دارد.
برای مثال:
https://api.example.com/users?city=Tehran
در Requests میتوانیم پارامترها را به شکل زیر ارسال کنیم:
import requests
params = {
"city": "Tehran"
}
response = requests.get(
"https://api.example.com/users",
params=params
)
print(response.url)
Headers چیست؟
Headers اطلاعات اضافی درباره درخواست HTTP را منتقل میکنند.
برای مثال میتوانیم نوع داده مورد انتظار را مشخص کنیم:
import requests
headers = {
"Accept": "application/json"
}
response = requests.get(
"https://api.example.com/users",
headers=headers
)
print(response.status_code)
API Key چیست؟
بعضی APIها برای شناسایی کاربران و کنترل دسترسی از API Key استفاده میکنند.
API Key معمولاً یک رشته متنی است که هنگام ارسال درخواست در Header یا پارامترهای درخواست قرار میگیرد.
برای مثال:
import requests
headers = {
"Authorization": "Bearer YOUR_API_KEY"
}
response = requests.get(
"https://api.example.com/data",
headers=headers
)
کار با API در پایتون
برای کار با API در پایتون معمولاً از کتابخانه Requests استفاده میکنیم.
یک نمونه ساده:
import requests
url = "https://api.example.com/data"
response = requests.get(url)
if response.status_code == 200:
data = response.json()
print(data)
else:
print("Request failed")
مدیریت خطا در API
هنگام کار با اینترنت همیشه احتمال خطا وجود دارد. بنابراین بهتر است درخواستها را مدیریت کنیم.
import requests
try:
response = requests.get(
"https://api.example.com/data",
timeout=10
)
response.raise_for_status()
data = response.json()
print(data)
except requests.exceptions.RequestException as error:
print("خطا در ارتباط با API:")
print(error)
پروژه عملی کار با API
فرض کنیم یک API اطلاعات کاربران را در اختیار ما قرار میدهد. میخواهیم اطلاعات را دریافت کرده و نام کاربران را چاپ کنیم.
import requests
url = "https://api.example.com/users"
try:
response = requests.get(
url,
timeout=10
)
response.raise_for_status()
users = response.json()
for user in users:
print(user["name"])
except requests.exceptions.RequestException as error:
print("خطا:", error)
در پروژههای واقعی فقط کافی است URL و ساختار داده را مطابق مستندات API موردنظر تغییر دهیم.
تمرین API در پایتون
تمرین ۱
برنامهای بنویسید که با Requests یک API را فراخوانی کرده و Status Code را نمایش دهد.
پاسخ
import requests
response = requests.get(
"https://api.example.com/data"
)
print(response.status_code)
تمرین ۲
برنامهای بنویسید که یک API را فراخوانی کرده و JSON دریافتشده را چاپ کند.
پاسخ
import requests
response = requests.get(
"https://api.example.com/data"
)
data = response.json()
print(data)
تمرین ۳
برنامهای بنویسید که یک API را با timeout فراخوانی کرده و خطاهای احتمالی را مدیریت کند.
پاسخ
import requests
try:
response = requests.get(
"https://api.example.com/data",
timeout=10
)
response.raise_for_status()
print(response.json())
except requests.exceptions.RequestException as error:
print("خطا:", error)
سؤالات متداول درباره API در پایتون
API چیست؟
API روشی برای ارتباط بین نرمافزارها و سرویسهای مختلف است.
REST API چیست؟
REST یک معماری رایج برای طراحی APIهای مبتنی بر HTTP است.
آیا برای کار با API در پایتون باید Requests را یاد بگیریم؟
Requests یکی از سادهترین و محبوبترین کتابخانهها برای ارسال درخواستهای HTTP در پایتون است و برای شروع گزینه بسیار مناسبی محسوب میشود.
API Key چیست؟
API Key یک شناسه یا کلید دسترسی است که بعضی سرویسها برای احراز هویت و کنترل دسترسی کاربران استفاده میکنند.
چرا APIها از JSON استفاده میکنند؟
JSON ساختاری ساده، خوانا و مناسب برای انتقال داده بین برنامههای مختلف دارد و به همین دلیل در APIهای وب بسیار رایج است.