پادیوم بلاگ
نحوه استفاده از API در پایتون - پادیوم

آموزش نحوه استفاده از API در پایتون

رضا دهقان
تکنولوژی ، مقالات

در حال حاضر پایتون یکی از محبوب‌ترین زبان‌های برنامه‌نویسی در دنیا است. بسیاری از کارشناسان اعتقاد دارند طی سه یا چهار سال آینده پایتون جای زبان‌های C و جاوا را به عنوان پرکاربردترین زبان برنامه‌نویسی خواهد گرفت و بنابراین، نیاز به یادگیری API در یان سال‌ها بیش از پیش احساس می‌شود. در این پست، ما به نحوه استفاده از API در پایتون می‌پردازیم. قبل از شروع،پیشنهاد می‌کنیم مقاله زیر در مورد انواع API و به طور ویژه REST APIها را مطالعه کنید.

به طور خلاصه، REAT API از پروتکل‌های HTTP برای تعامل با وب‌سرویس‌ها بهره می‌برند و از دید پایتون، یک REST API در واقع یک منبع اطلاعات در سطح اینترنت است که در یک آدرس خاص قرار دارد و برای دسترسی به آن نیاز به کتابخانه‌ها و اطلاعات خاصی دارد. یک REST API پنج ویژگی اصلی دارد که آن را تعریف می‌کنند:

  • رابط کاربری یکپارچه: اجزای رابط کاربری با استفاده از قوانین عمومی‌سازی طراحی شده‌اند تا معماری کلی سیستم ساده‌تر شده و ظاهر تعامل‌ها بهبود پیدا کند.
  • معماری کلاینت-سرور: الگوی طراحی کلاینت-سرور امکان جدایی این دو از یکدیگر را فراهم می‌کند. به این ترتیب، اجزای کلاینت و سرور می‌توانند به صورت مستقل از یکدیگر توسعه پیدا کنند.
  • بدون وضعیت: یعنی هر درخواست از سوی کلاینت باید حاوی تمام اطلاعات لازم برای انجام درخواست باشد و سرور نمی‌تواند از هیچ‌کدام از اطلاعاتی که از قبل ذخیره شده‌اند بهره ببرد.
  • قابل کش شدن: هر پاسخ باید مشخص کند که قابل کش شدن است یا نه. اگر پاسخ قابل کش  شدن باشد، کلاینت اجازه دارد از آن برای درخواتس‌های مشابه بعدی استفاده کند.
  • سیستم لایه‌ای: مدل لایه‌ای به معماری اجازه می‌دهد تا یک سیستم سلسه‌مراتبی پیاده‌سازی کند و هر لایه تنها می‌تواند لایه‌هایی که با آن ارتباط دارد را ببیند.

در HTTP، چهار نوع اصلی درخواست یا متد وجود دارد:

  • GET: دریافت داده از سرور
  • POST: اضافه کردن ریسورس جدید در سرور
  • PUT: تغییر داده موجود
  • DELETE: پاک کردن داده موجود

پیش‌نیازهای استفاده از API در پایتون

برای استفاده از REST APIها در پایتون، ابتدا باید برای ارسال درخواست‌های HTTP به یک کتابخانه وصل شویم. نوع کتابخانه انتخابی به ورژن پایتونی که استفاده می‌کنیم، بستگی دارد.

اگر از پایتون ۲ استفاده می‌کنید، پیشنهاد می‌کنیم از کتابخانه unirest استفاده کنید. این کتابخانه به دلیل سادگی، سرعت و قابلیت کار با درخواست‌های هم‌زمان و غیر هم‌زمان گزینه بسیار خوبی برای پایتون ۲ است.

اما اگر کاربر پایتون ۳ هستید، بهتر از requests استفاده کنید. این کتابخانه استاندارد برای ایجاد درخواست‌های HTTP در پایتون است.

در ادامه این آموزش ما از پایتون ۳.۶ و کتابخانه requests استفاده می‌کنیم. با توجه به این موارد، یک درخواست GET در پایتون به صورت زیر نوشته می‌شود:

در اینجا کد Response به عنوان یک ابزار برای تایید اعتبار و صحت درخواست استفاده می‌شود. در مثال ما، Response برابر ۲۰۰ بود که یعنی درخواست با موفقیت ارسال شده است. حالا کدهای Response و معنی آن‌ها را بیشتر بررسی می‌کنیم.

کدهای وضعیت HTTP

کدهای وضعیت به همراه پاسخ ارسال می‌شوند و به طور خالصه نتیجه ارسال درخواست را نشان می‌دهند. در اینجا معنی برخی از پرکابردترین کدهای وضعیت که با‌نها سر و کار خواهید داشت را توضیح داده‌ایم:

۲۰۰ – OK: درخواست موفقیت‌آمیز بوده است. پاسخ کامل به نوع درخواست (GET, POST و…) و مشخصات API بستگی دارد.

۲۰۱ – Created: درخواست موفقیت‌آمیز بوده و به ساخت یک ریسورس منجر شده است.

۲۰۴ – No Content: سرور با موفقیت درخوادست را پردازش کرده، اما هیچ پاسخی ارسال نکرده است.

۳۰۱ – Moved Permanently: سرور پاسخ داده که ریسورس درخواستی (اندپوینت) را به یک آدرس دیگر ارسال کرده و به آن آدرس ریدایرکت می‌کند.

۴۰۰ – Bad Request: سرور به دلیل وجود مشکل در فرمت درخواست قادر به ارسال پاسخ نیست.

۴۰۱ – Unauthorized: به دلیل درست نبودن اطلاعات احراز هویت سرور اجازه ارسال پاسخ را ندارد.

۴۰۳ – Forbidden: دسترسی به این ریسورس غیر مجاز است.

۴۰۴ – Not Found: ریسورس درخواستی در سرور وجود ندارد. 

۵۰۰ – Internal Server Error: زمانی که مشکلی در سرور وجود دارد ارسال می‌شود.

کتابخانه request چندین دستور مفید و کاربردی برای کار کردن با کدهای وضعیت دارد. برای مثال، شما می توانید با استفاده از دستور status_code کد وضعیت یک Response را ببینید:

علاوه بر این شما می‌توانید با استفاده از دستورهای شرطی وضعیت یک Response را بررسی کنید:

اندپوینت‌ها

به طور معمول اندپوینت یک آدرس خاص (برای مثال:  https://api.pod.ir/srv/sc/nzh/doServiceCall ) است که با مراجعه به آن به یک سری داده و امکانات خاص دسترسی پیدا می‌کنید. به طور معمول نام (آدرس) اندپوینت با کاربرد آن هماهنگ است. برای درک بهتر کاربرد اندپوینت فرض کنید قصد دارید این سرویس را در اپیکیشن خود که با پایتون ۳.۶ نوشته شده، استفاده کنید. کد اپلیکیشن چیزی مشابه کد زیر خواهد بود:

دریافت پاسخ یک درخواست

به منظور دریافت بدنۀ (body) پاسخ یک وب‌سرویس از دستور زیر استفاده می‌کنیم. این دستور محتویات بدنه پاسخ را به صورت رشته کاراکتر (string) به دست می‌دهد.

دریافت پاسخ JSON از یک درخواست

در اکثر موارد REST APIها برای راحتی کار پاسخ را در قالب JSON ارسال می‌کنند. کتابخانه requests یک متد ()json. دارد که پاسخ رشته را به یک JSON تبدیل می‌کند.  در مثال بالا، اگر پارامتر country را که مقدار آن برابر با “ایران” و از نوع رشته (string) به اپلیکیشن اضافه کنیم، کد درخوسات و پاسخ دریافتی یک آرایه از نام استان‌ها و شناسه آن‌ها خواهد بود:

کد درخواست:

پاسخ دریافتی:

استفاده از API در پایتون به کمک پادیوم

  • اگر بخواهیم موارد گفته‌شده را جمع‌بندی کنیم، برای استفاده API در پایتون مراحل زیر باید طی شوند:
  • دریافت کلید و توکن API (برای دریافت توکن API در پادیوم، کافی است تا یک حساب کاربری ایجاد کنید)
  • آزمایش اندپوینت‌ها (در پایدوم امکان فراخوانی آزمایشی سرویس‌ها بدون نیاز به ثبت‌نام فراهم شده است)
  • وارد کردن مشخصات API در اپلیکیشن

نکته مهم قبل از شروع پروژه و استفاده از API، مطالعه مستندات فنی سرویس‌ها است. در پادیوم هر سرویس دارای توضیحات کاملی برای نحوه استفاده و پیاده‌سازی هر سرویس است که می‌تواند شما را در مسیر توسعه پروژه راهنمایی کند. علاوه بر این اگر سوالی در خصوص سرویس‌ها و یا نحوه پیاده‌سازی دارید، کارشناسان فنی پادیوم آماده هستند تا در تمامی مراحل پیاده‌سازی سرویس به شما کمک کنند.

سوالات متداول

API در پایتون به چه معناست؟

از دید پایتون، یک REST API در واقع یک منبع اطلاعات در سطح اینترنت است که در یک آدرس خاص قرار دارد و برای دسترسی به آن نیاز به کتابخانه‌ها و اطلاعات خاصی دارد.

گام اول برای استفاده از APIها در پایتون چیست؟

برای استفاده از REST APIها در پایتون، ابتدا باید برای ارسال درخواست‌های HTTP به یک کتابخانه وصل شویم. نوع کتابخانه انتخابی به ورژن پایتونی که استفاده می‌کنیم، بستگی دارد.