کار با API های خارجی در پایتون: ارسال و دریافت داده JSON
در دنیای مدرن نرمافزار، اپلیکیشنها دیگر جزیرههای تنها نیستند. آنها دائماً با یکدیگر صحبت کرده و داده رد و بدل میکنند. این ارتباط از طریق چیزی به نام API (Application Programming Interface) یا «رابط برنامهنویسی کاربردی» انجام میشود. APIها مانند گارسونهای اینترنت عمل میکنند: شما درخواست خود را (مثلاً «آخرین قیمت بیتکوین را به من بده») به آنها میدهید، آنها درخواست را به سرور میبرند و پاسخ را برای شما بازمیگردانند. زبان مشترک این گفتگو، در اکثر موارد، JSON (JavaScript Object Notation) است؛ یک فرمت داده سبک و خوانا که هم برای انسان و هم برای ماشین قابل درک است. زبان برنامهنویسی پایتون، با کتابخانههای فوقالعادهای مانند `requests`، این فرآیند پیچیده را به چند خط کد ساده تبدیل کرده است. این مقاله، راهنمای عملی شما برای شروع گفتگو با دنیای وب از طریق APIها در پایتون است.
> جعبه ابزار ضروری: `requests` و `json`
برای شروع، تنها به دو کتابخانه نیاز دارید:
-
کتابخانه `requests`
این کتابخانه استاندارد طلایی برای ارسال درخواستهای HTTP در پایتون است. `requests` پیچیدگیهای پروتکل HTTP را پنهان کرده و به شما اجازه میدهد تا با یک خط کد ساده، دادهها را از وب دریافت یا به آن ارسال کنید. (برای نصب: `pip install requests`)
-
کتابخانه `json`
این کتابخانه به صورت پیشفرض در پایتون وجود دارد و وظیفه آن، تبدیل دادهها بین فرمت JSON (که یک رشته متنی است) و دیکشنریهای پایتون (Python Dictionaries) است.
> دریافت داده از سرور با درخواست GET
درخواست `GET` برای خواندن یا دریافت اطلاعات از یک سرور استفاده میشود. بیایید یک مثال عملی را ببینیم. ما از یک API عمومی و رایگان به نام JSONPlaceholder برای دریافت اطلاعات یک پست فرضی استفاده میکنیم.
import requests
# URL of the API endpoint
url = “https://jsonplaceholder.typicode.com/posts/1”
# Send a GET request
response = requests.get(url)
# Check if the request was successful (status code 200)
if response.status_code == 200:
# .json() automatically converts the JSON response to a Python dictionary
data = response.json()
print(f“Title: {data[‘title’]}”)
else:
print(f“Error: {response.status_code}”)
> ارسال داده به سرور با درخواست POST
درخواست `POST` برای ارسال داده به سرور جهت ایجاد یک منبع جدید (مثلاً ایجاد یک پست جدید در وبلاگ یا ثبتنام یک کاربر جدید) استفاده میشود.
import requests
url = “https://jsonplaceholder.typicode.com/posts”
# Data to be sent (as a Python dictionary)
new_post = {
‘title’: ‘My First Post’,
‘body’: ‘This is the content.’,
‘userId’: 1
}
# Send the POST request with the data in JSON format
response = requests.post(url, json=new_post)
# 201 status code means “Created”
if response.status_code == 201:
print(“Post created successfully!”)
print(response.json())
نکته کلیدی: کتابخانه `requests` کار را بسیار ساده کرده است. با استفاده از پارامتر `json=new_post`، این کتابخانه به صورت خودکار دیکشنری پایتون شما را به فرمت JSON تبدیل کرده و هدرهای HTTP لازم را نیز تنظیم میکند.
> کار با APIهای نیازمند احراز هویت
بیشتر APIهای دنیای واقعی، برای استفاده نیاز به احراز هویت دارند تا هویت شما را تأیید کنند. رایجترین روش، استفاده از کلید API (API Key) است. این کلید یک رشته منحصر به فرد است که باید آن را در هدر (Header) هر درخواست خود ارسال کنید:
api_key = “YOUR_SECRET_API_KEY”
headers = {
“Authorization”: f“Bearer {api_key}”
}
response = requests.get(url, headers=headers)
به دنیای متصل وب قدم بگذارید!
توانایی کار با APIها یک مهارت بنیادی برای هر توسعهدهنده مدرن است. این مهارت به شما اجازه میدهد تا اپلیکیشنهای قدرتمندتری بسازید، فرآیندها را خودکار کنید و از سرویسهای بیشماری که در وب وجود دارد، در پروژههای خود استفاده نمایید.
- ✅ دورههای جامع برنامهنویسی پایتون با تمرکز بر توسعه وب
- ✅ پروژههای عملی کار با APIهای واقعی (مانند APIهای مالی یا شبکههای اجتماعی)
- ✅ دریافت مدرک معتبر بینالمللی فنی و حرفهای
ثبتنام در دورههای تخصصی پایتون