واژه API امروزه بسیار شنیده میشود. گاهی میشنویم که مثلا API اینستاگرام محدود شد … یا مثلا گوگل API نقشه خود را گسترش داد. اما به راستی API چیست ؟
واژه API (+) از سرنام واژگان عبارت Application Programming Interface گرفته شده است. معنی واژه به واژه این عبارت یعنی رابط برنامه سازی اپلیکیشن ! اما این یعنی چه ؟
این فیلم در یک نگاه
در این آموزش با معنی این عبارت و مفهوم API آشنا خواهید شد. سپس فراخواهید گرفت که فرق API و Web API چیست ؟ مدرس هم رویش نمونههایی از کاربردهای API را به شما نشان خواهد شد.
سپس در مقام کسی که بخواهد خودش API درست کند، خواهید فهمید که ایجاد API چه مزایایی دارد.
این آموزش به صورت مستقل قابل استفاده است؛ اما در واقع یکی از درسهای بسته آموزش Django REST برای تولید API (+) است. در این بسته آموزشی شما پس از گذراندن چند درس مقدماتی (مثل همین درس « API چیست ؟ ») وارد کدنویسی میشوید. با استفاده از فریمورک جنگو و زبان پایتون به تولید Web API خواهید پرداخت.
در ادامه این فیلم، نمونهای از کاربرد Web API برون سازمانی در قالب سرویس ارائه کننده API وضعیت هواشناسی OpenWeatherMap (+) به شما نشان داده میشود.
در انتهای این فیلم، مدرس شما را به تمرینی جدی دعوت میکند. فرق Web API و Web Service چیست ؟ پس از درک مفهوم API باید بتوانید با یک جستجوی هوشمند به ویژه در منابع اصلی، این فرق را تا حدی درک کنید.
lordofcyberpunk2077 (خریدار محصول) –
سلام.استاد ببخشید میشه فرق بین api و library رو بگین من یخورده گیج شدم
مصطفی آصفی –
سلام به شما و ممنون از سوال خوبتون. پیش از هر کاری عنوان این آموزش رو اصلاح کردم: Web API چیست؟ این عنوان درست تره.
اما پاسخ سوال شما.
کتابخانه یا library یک مجموعهای از کدها و فایلهاست که دست به دست هم برای اجرای یک هدف نوشته شدن. مثلا فرض کن یک کتابخانه داریم برای محاسبات ریاضی پیشرفته مثل انتگرال و مشتق و … . چندین و چند کلاس و تابع و ماژول و … دست به دست هم دادن تا الگوریتمها پیاده سازی شدن. حالا توسعه دهنده این کتابخانه میخواد که شما بتونی در کدهای خودت مثلا از دل این کتابخونه تابع محاسبه انتگرال رو صدا بزنی. مستنداتی مینویسه و میگه این مسیر صدا کردن تابع منه.
مثال واقعی تری بزنم. مثلا توسعه دهندگان کتابخانه Kivy در پایتون (+) اومدن هزاران خط کد نوشتن و کلی کلاس و تابع و ماژول و فایل و … رو در کتابخانه خودشون کنار هم گذاشتن تا شما بتونی ویجت های مختلف گرافیکی مثل دکمه و … رو در یک اسکریپت پایتونی ایجاد کنی. حالا وقتی شما می خوای یک دکمه بسازی دیگه با اون هزاران خط کد کاری نداری. در مستندات API کیوی برات نوشتن که اگه می خوای دکمه بسازی از ماژول فلان کلاس فلان رو صدا بزن و متن دکمه و رنگ و … رو بهش پاس بده.
این میشه API . یعنی رابطی که اجازه میده یک اپلیکیشن به نتیجه کدهای یک کتابخونه (که مثلا دست به دست هم میشن یک دکمه) تنها با صدا زدن یک تابع یا کلاس دسترسی پیدا کنه.
حالا Web API چی هست. در واقع Web API هم به نوعی از همین مضمون گرفته شده. یعنی رابطی که اجازه میده یک اپلیکیشن به نتیجه کدهای نوشته شده در یک سرور تحت وب تنها با صدا زدن یک url دسترسی پیدا کنه.
یه مثال واقعی هم از Web API بزنم. مثلا این وبسایت هواشناسی (+) در سرور خودش کدهایی نوشته، تابعهایی و کلاسهایی که برای هر نقطه از زمین می تونن اطلاعات و پیشبینیهای هواشناسی رو دربیارن. حالا میاد برای این که افراد بتونن با این اطلاعات کار کنن یک سیستم Web API میده. یک سری url.
مثلا یک url میده که اگر شما اون رو به همراه مختصات جغرافیایی نقطه مورد نظر صدا بزنی در پاسخ اون سرور میاد بهت یک سری اطلاعات متنی (به فرمت جیسون) برمی گردونه حاوی دمای فعلی اطلاعات اون منطقه و چند تا داده دیگه.
پس بخوام جمع بندی کنم API به طور کلی یعنی رابطی برای کار کردن با نتیجه کدهای دیگران از دل کدهای خودمون. در حالت معمول یعنی کار با کتاخانههای دیگران به واسطه تابعها و کلاسهایی که برامون تعریف کردن و در حالت Web یعنی کار با نتیجه کدهای یک سرور تحت وب که به واسطه یک سری url برامون تعریف کردن.
پینوشت: همه توضیحات بالا رو زمانی بهتر درک می کنید که واقعا از Web API استفاده کنید. حتما آموزش Django Rest (+) رو ببینید و اجرا کنید.