
روز ۴۳ آموزش پایتون: آشنایی با requests و APIها
در دنیای برنامه نویسی مدرن، دریافت و ارسال داده از منابع خارجی یکی از مهارتهای حیاتی است که هر توسعهدهنده پایتون باید به آن تسلط داشته باشد. APIها یا رابطهای برنامهنویسی کاربردی به برنامهها اجازه میدهند تا با سرویسها و سیستمهای دیگر ارتباط برقرار کنند و دادهها را به صورت ساختاریافته دریافت یا ارسال کنند. کتابخانه requests در پایتون یکی از محبوبترین و سادهترین ابزارها برای انجام درخواستهای HTTP به شمار میرود. با استفاده از requests میتوانیم درخواستهای GET، POST و دیگر انواع HTTP را ارسال کرده و پاسخها را دریافت و پردازش کنیم. این مهارت در پروژههای واقعی مانند دریافت اطلاعات هواشناسی، قیمت سهام، دادههای شبکههای اجتماعی و حتی ارتباط با سرویسهای داخلی سازمانها کاربرد فراوان دارد و باعث میشود برنامههای شما توانایی تعامل با دنیای واقعی را پیدا کنند. تسلط بر requests به شما اجازه میدهد دادههای JSON، XML و حتی فایلهای باینری را به سادگی مدیریت کنید و از آنها در پروژههای خود استفاده کنید.
نصب و آمادهسازی کتابخانه requests
پیش از شروع، ابتدا باید کتابخانه requests را نصب کنیم. نصب این کتابخانه بسیار ساده است و با pip انجام میشود. پس از نصب، میتوانیم با import کردن requests در پروژههای خود از امکانات آن بهرهمند شویم. این مرحله پایهای برای کار با APIهاست، زیرا بدون requests امکان ارسال درخواست HTTP و دریافت پاسخ از سرویسهای خارجی وجود ندارد. نصب و آمادهسازی محیط به صورت زیر انجام میشود:
# نصب کتابخانه requests # pip install requests import requests
بعد از import، آماده هستیم تا انواع درخواستها را ارسال کرده و پاسخها را مدیریت کنیم. کتابخانه requests امکاناتی برای مدیریت هدرها، پارامترها، کوکیها و حتی زمانبندی درخواستها فراهم میکند و در پروژههای واقعی بسیار کاربردی است.
ارسال درخواست GET و دریافت دادهها
یکی از رایجترین عملیاتها در APIها، استفاده از درخواست GET برای دریافت داده است. فرض کنید میخواهیم اطلاعات کاربران یا وضعیت آب و هوا را از یک API دریافت کنیم. با requests، این کار با چند خط کد ساده انجام میشود و دادهها معمولاً در قالب JSON بازمیگردند که به راحتی میتوان آنها را در پایتون پردازش کرد. نمونه کد دریافت داده با GET به شکل زیر است:
url = "https://jsonplaceholder.typicode.com/users"
response = requests.get(url)
# بررسی وضعیت پاسخ
if response.status_code == 200:
data = response.json()
print(data)
else:
print("خطا در دریافت دادهها:", response.status_code)در این مثال، ابتدا URL مشخص شده و سپس با requests.get درخواست ارسال میکنیم. status_code وضعیت پاسخ را نشان میدهد و response.json() دادهها را به شکل دیکشنری پایتون در اختیار ما قرار میدهد. این روش پایهای و ساده، امکان پردازش دادههای واقعی را فراهم میکند.
ارسال داده با POST
علاوه بر دریافت داده، بسیاری از APIها امکان ارسال داده را نیز فراهم میکنند. این کار معمولاً با درخواست POST انجام میشود و در ثبت اطلاعات فرمها، ارسال تراکنشها و ایجاد منابع جدید کاربرد دارد. requests امکان ارسال دادهها به صورت JSON یا فرمهای کلاسیک را فراهم کرده است. نمونه کد POST به شکل زیر است:
url = "https://jsonplaceholder.typicode.com/posts"
payload = {
"title": "My Post",
"body": "این یک تمرین ارسال داده با POST است",
"userId": 1
}
response = requests.post(url, json=payload)
print(response.status_code)
print(response.json())در این مثال، دادهها به صورت JSON ارسال میشوند و پاسخ سرور شامل اطلاعات ثبت شده و وضعیت عملیات است. استفاده از این روش در پروژههای واقعی، پایهای برای تعامل با APIهای پیچیدهتر است.
مدیریت خطاها و استثناها
در کار با سرویسهای خارجی، خطاهایی مانند قطعی اینترنت، خطای سرور یا پاسخ نامعتبر ممکن است رخ دهد. requests ابزارهای سادهای برای مدیریت این خطاها فراهم کرده است. با استفاده از try-except میتوان از توقف برنامه جلوگیری کرد و پیام مناسب به کاربر یا سیستم ارائه داد. نمونه مدیریت خطا:
try:
response = requests.get("https://jsonplaceholder.typicode.com/users")
response.raise_for_status()
data = response.json()
print(data)
except requests.exceptions.HTTPError as errh:
print("خطای HTTP:", errh)
except requests.exceptions.ConnectionError as errc:
print("خطای اتصال:", errc)
except requests.exceptions.Timeout as errt:
print("خطای زمانبندی:", errt)
except requests.exceptions.RequestException as err:
print("خطای دیگر:", err)این روش باعث میشود برنامه مقاوم در برابر خطاهای شبکه باشد و تجربه کاربری بهتری ایجاد کند. استفاده از مدیریت خطاها در پروژههای واقعی اهمیت بالایی دارد زیرا ارتباط با سرویسهای خارجی همیشه با ریسک مواجه است.
جمعبندی روز ۴۳
در این جلسه با مفهوم APIها و نحوه کار با کتابخانه requests آشنا شدیم. یاد گرفتیم چگونه دادهها را با GET دریافت کنیم، با POST ارسال کنیم و پاسخها را به صورت JSON پردازش کنیم. همچنین مدیریت خطاها و استفاده از try-except برای محافظت برنامه در برابر مشکلات شبکه بررسی شد. تمرین و پیادهسازی مثالها باعث میشود در پروژههای واقعی، حتی با APIهای پیچیدهتر نیز توانایی کار داشته باشیم و دادههای خارجی را به شکل مؤثر پردازش کنیم. تسلط بر requests یک مهارت کلیدی برای هر توسعهدهنده پایتون است که باعث میشود برنامههای شما توانایی تعامل با دنیای واقعی و سرویسهای آنلاین را پیدا کنند.
