API مخفف application programming interfaceبه معنای رابط برنامهنویسی نرمافزار است و رابطی است بین یک کتابخانه با برنامههایی که از آن کتابخانه تقاضای سرویس میکنند. دراین قسمت به معرفی انواع API ها می پردازیم.
API چیست؟
به صورت ساده و قابل فهم، API ها شامل توابعی است که در یک سرور (یا سیستم عامل) وجود دارد و یک برنامه نویس در برنامه خود میتواند آنها را فراخوانی و استفاده کند بدون اینکه به سورس و نحوه عملکرد آن ها دسترسی داشته باشد.
به عنوان مثال ویندوز یک سیستم عامل با کد بسته (غیر اپن سورس) است اما مایکروسافت برای ویندوز، APIهایی قرار داده است که با استفاده از آنها، برنامهنویسان میتوانند از قابلیتها و سرویسهای سیستمعامل ویندوز در توسعه و نوشتن برنامههای کاربردی خود استفاده کنند.
API های تحت وب
API های تحت وب به مراتب گستردهتر، پرکاربردتر و از همه مهمتر، مستقل از سیستمعامل است. یعنی یک برنامه ممکن است روی سیستم عامل لینوکس در حال اجرا و از API موجود در یک سرور ویندوزی استفاده کند.
برای دسترسی به API های وب ازSOAP و REST استفاده می شود که دومی جدیدتر و استفاده از آن راحت است.
- برای آشنایی کامل با SOAP به بخش برنامه نویسی وب سرویس با پی اچ پی در همین سایت مراجعه کنید.
- برای آشنایی یا REST کتابRESTful Web APIs را که تازه چاپ شده، دانلود و مطالعه بفرمایید.
سایتهای پربازدید و شبکههای اجتماعی معمولا API دارند که این امکان را فراهم می کنند تا برنامه کاربردی با زبان های مختلف و تحت سیستم عامل های مختلف با آنها تعامل داشته باشند و اطلاعاتی دریافت کرده یا به آنها بفرستند .
معرفی چند نمونه APIمهم
در این قسمت میتوانید با چند تا از API های تحت وب آشنا می شوید.
تبدیل فرمت فایل ها
یکی از جذابترین API ها، مربوط به تبدیل فایل است که به کمک آن میتوانید هر نوع فایل (صوتی/تصویری/متنی/…) را به نوع دیگر تبدیل کنید!
مثلا میتوانید یک فایل wma یا wav را به mp3 تبدیل کنید یا یک فیلم avi را به mp4. میتوانید یک فایل word تحویل بدهید و یک فایل txt تحویل بگیرید.
به عنوان مثال، سایت Encoding.com امکانات خوبی برای تبدیل فایلهای صوتی و تصویری به صورت آنلاین توسط صفحه وب و همچنین API فراهم آورده است .
سرویس های آپلود فایل
بسیاری از سرویسهای اشتراک فایل یا آپلود سنترهای معتبر، دارای یک رابط برنامه نویسی API برای توسعه دهندگان ها هستند که به برنامه نویس امکان میدهد به سادگی فایلهای مورد نظرش را در آن سرویس آپلود کند.از جمله آنها میتوان به filecloud.io و ge.tt و … اشاره کرد.
برخی از اینگونه سایتها، امکان آپلود از طریق ftp را نیز در اختیار کاربر قرار میدهند که کار را بسیار سادهتر میکند .از جمله این سایتها نیز میتوان uploading.com و archive.org را نام برد.
سرویس های پیش بینی وضعیت آن و هوا
API های مختلفی در اینترنت ارائه شده اند که خدمات ارائه وضعیت آب و هوا برای هر نقطه ای از جهان و پیش بینی وضعیت برای چند روز آینده ارائه می کنند.
· می توانید نمونه برنامه هایی برای دریافت وضعیت آب و هوا به زبان پی اچ پی را در این سایت ببینید.
شبکه های اجتماعی
یکی از شبکه های اجتماعی محبوب در بین ایرانیان، تلگرام است که دارای یک API برای برنامه نویسیان فراهم کرده تا بتوانند برنامه های کاربردی بصورت اپلیکیشن های موبایل یا دسک تاپ و ربات بنویسند.
چگونه از API استفاده کنیم؟
API برای برنامهنویسان تهیه شده و برای استفاده از آن لازم است در دانش برنامهنویسی اطلاعاتی داشته باشید. بسیاری از سایتهایی که دارای API هستند، به همراه آن مثال و نمونهکد آموزشی نیز ارائه میدهند.
در این مطلب نیز بیش از 16 مقاله در مورد استفاده از چند API ی معروف لیست شده است.
چگونه API مورد نیازتان را پیدا کنید؟
ممکن است شما برای کارتان به یک API نیاز داشته باشید. اولین راهی که برای یافتن API کارآمد به ذهن هر کسی میرسد، جستجو در گوگل یا پرسش در استکاورفلو است. اما علاوه بر آن، شما میتوانید از سایتهایی همچون Mashapeو ProgrammableWeb نیز در این جهت استفاده کنید که انواع API های مختلف را لیست کردهاند.
چگونه برای سایت خودم API بنویسم؟
نوشتن API آسانتر از نوشتن برنامه کامل یک سایت است زیرا در API صرفا قرار است برحسب درخواست هایی که دارید، دادهها (اطلاعات) با ساختاری که از قبل تعیین کردید (مثلا JSON) به عنوان پاسخ تولید کنید.
همچنین همانطور که بخشی از یک سایت میتواند فقط مختص کاربران احراز هویت شده باشد، در API هم میتواند همه یا بخشی از آن مختص کاربرانی باشد که احراز هویت شدهاند. البته یک نکته ظریف وجود دارد و آن اینکه در API نمیتوان کپچا گذاشت چون API ها توسط برنامهها (و نه انسان) استفاده میشود. لذا API های متداول، به جای user, password از یک کلید رندوم مثلا 50 کاراکتری به نام API key استفاده میکنند که تشخیص آن عملا غیرممکن است (برخلاف پسوردها که معمولا کوتاه است و با حمله brute force میتوان آن را حدس زد). ضمن اینکه در این روش، پسورد کاربر محفوظ میماند و همچنین با API key های مختلف، میتوان نظارت و کنترل بهتری روی برنامه استفادهکننده از API سایت مان داشته باشیم و در صورت نیاز موارد مشکوک یا پرمصرف را مسدود یا غیررایگان کنیم.
اگر هنوز در برنامهنویسی با PHP چندان مسلط نیستید، می توانید از قسمت زیر استفاده کنید:
همچنین برای ایجاد API های کتابخانههای PHP وجود دارد که برای شروع API نویسی، نمونه خوبی هستند مثلا لینک زیر را ببینید: