ایجاد: ۲۲:۲۶ ۱۳۹۲/۸/۱۴
ویرایش: ۲۰:۲۹ ۱۴۰۰/۱۱/۲۵
»
API مخفف application programming interface (رابط برنامهنویسی نرمافزار) واسطهای است بین یک کتابخانه با برنامههایی که از آن کتابخانه تقاضای سرویس میکنند.
به صورت ساده و قابل فهم، API ها مثل function هایی هستند که در یک سرور (یا سیستم عامل) وجود دارد و یک برنامه نویس در برنامه خود میتواند آنها را فراخوانی و استفاده کند بدون اینکه به سورس و نحوه عملکرد آن دسترسی داشته باشد.
به عنوان مثال ویندوز یک سیستم عامل کدبسته (غیر اپن سورس) است اما مایکروسافت برای ویندوز، APIهایی قرار داده است که با استفاده از آنها، برنامهنویسان میتوانند از قابلیتها و سرویسهای سیستمعامل ویندوز در توسعه و نوشتن برنامههای کاربردی خود استفاده کنند.
API های تحت وب
API های تحت وب به مراتب گستردهتر، پرکاربردتر و از همه مهمتر؛ مستقل از سیستمعامل است. یعنی یک برنامه ممکن است روی سیستم عامل linux باشد اما شما که یک سرور ویندوزی دارید، میتوانید از API آن به سادگی استفاده کنید.
SOAP و REST دو گروه معروف از API های تحت وب هستند که دومی سادهتر و استفاده از آن آسانتر است. اگر شما کتاب
RESTful Web APIs را که تازه چاپ شده، دانلود و مطالعه بفرمایید، بیشتر با آن آشنا میشوید.
سایتهای پربازدید و شبکههای اجتماعی معمولا API دارند که موجب میشود برنامه (اپلیکیشن)های زیادی برای تعامل با آنها (نمایش/جستجو/نوشتن) در سیستمعاملهای مختلف ایجاد شود و معمولا تعداد بسیار زیادی از کاربران از همین طریق از شبکههای اجتماعی استفاده میکنند.
چگونه API را آنلاین تست کنم؟!
سرویس
reqbin.com و از آن پیشرفتهتر
hoppscotch.io برای این مقصود ایجاد شده است.
معرفی چند نمونه API
در این مطلب میتوانید 15 تا از API های ساده تا پیشرفته تحت وب را ببینید و از آن استفاده کنید. یکی از جذابترین API های معرفی شده در این لیست برای من API مربوط به تبدیل فایل بود که به کمک آن میتوانید هر نوع فایل (صوتی/تصویری/متنی/...) را به نوع دیگر تبدیل کنید!
مثلا میتوانید یک فایل wma یا wav را به mp3 تبدیل کنید یا یک فیلم avi را به mp4 :)
یا میتوانید یک فایل word تحویل بدهید و یک فایل txt تحویل بگیرید و ...
آپدیت: امروز سایت Encoding.com را دیدم که در پلن رایگان خود نیز امکانات خوبی برای تبدیل فایلهای صوتی و تصویری به صورت آنلاین توسط صفحه وب و همچنین API فراهم آورده است که برای سایتهای حاوی صوت و تصویر عالی است.
در این صفحه گیتهاب نیز لیست خوبی فراهم آمده است.
API های سرویس آپلود فایل: به شخصه از این API ها زیاد استفاده کردهام. خصوصا برای تهیه بکآپ اتوماتیک آنلاین.
بسیاری از سرویسهای اشتراک فایل یا آپلودسنترهای معتبر، دارای یک رابط برنامه نویسی API برای developper ها هستند که به برنامه نویس امکان میدهد به سادگی فایلهای موردنظرش را در آن سرویس آپلود کند. از جمله آنها میتوان به filecloud.io و ge.tt و ... اشاره کرد.
ناگفته نماند که برخی از اینگونه سایتها، امکان آپلود از طریق ftp را نیز در اختیار کاربر قرار میدهند که کار را بسیار سادهتر میکند .از جمله این سایتها نیز میتوان uploading.com و archive.org را نام برد.
API برای OCR: که البته بیشتر برای دور زدن کپچاهای ساده کاربرد دارد تا تبدیل متن اسکن شده به متن تایپشده :)
این یک نمونه سرویس رایگان (اما محدود به 5 هزار در ماه) برای OCR است که API هم دارد و این هم یک نمونه کد برای کار با آن است. این سرویس نیز هرچند رایگان نیست اما قیمت آن تقریبا معادل رایگان است!
چگونه از API استفاده کنیم؟
طبعا API برای برنامهنویسان تهیه شده و برای استفاده از آن لازم است در دانش برنامهنویسی اطلاعاتی داشته باشید. بسیاری از سایتهایی که دارای API هستند، به همراه آن مثال و نمونهکد آموزشی نیز ارائه میدهند.
در
این مطلب نیز بیش از 16 مقاله در مورد استفاده از چند API ی معروف لیست شده است.
چگونه API موردنیازم را پیدا کنم؟
ممکن است شما برای کارتان به یک API نیاز داشته باشید. اولین راهی که برای یافتن API کارآمد به ذهن هر کس میرسد، جستجو در گوگل یا پرسش در استکاورفلو است. اما علاوه بر آن، شما میتوانید از سایتهایی همچون
Mashape و
ProgrammableWeb نیز در این جهت استفاده کنید که انواع API های مختلف را لیست کردهاند...
چگونه برای سایت خودم API بنویسم؟
ممکن است فکر کنید که نوشتن یک API برای یک سایت سخت است اما اینطور نیست. نوشتن API آسانتر از نوشتن برنامه کامل یک سایت است زیرا در API صرفا قرار است حسب آدرس درخواستی، دادهها (اطلاعات) با ساختاری که از قبل تعیین کردید (مثلا JSON) به عنوان پاسخ آورده شود.
همچنین همانطور که بخشی از یک سایت میتواند فقط مختص کاربران احراز هویت شده باشد، در API هم میتواند همه یا بخشی از آن مختص کاربرانی باشد که احراز هویت شدهاند. البته یک نکته ظریف وجود دارد و آن اینکه در API نمیتوان کپچا گذاشت چون API ها توسط برنامهها (و نه انسان) استفاده میشود. لذا API های متداول، به جای user, password از یک کلید رندوم مثلا 50 کاراکتری به نام API key استفاده میکنند که تشخیص آن عملا غیرممکن است (برخلاف پسوردها که معمولا کوتاه است و با حمله brute force میتوان آن را حدس زد). ضمن اینکه در این روش، پسورد کاربر محفوظ میماند و همچنین با API key های مختلف، میتوان نظارت و کنترل بهتری روی برنامه استفادهکننده از API سایتمان داشته باشیم و در صورت نیاز موارد مشکوک یا پرمصرف را مسدود یا غیررایگان کنیم.
اگر هنوز در برنامهنویسی با PHP چندان مسلط نیستید، کتابخانههای PHP وجود دارد که برای شروع API نویسی، نمونه خوبی هستند مثلا این فریمورک مخصوص API از آقای martin bean را ببینید.
در مورد احراز هویت کاربر نیز قبلا مطلبی نوشتم و گفته شد که بجای روش مرسوم و قدیمی و پرخطر cookie بهتر است از روشهای token based استفاده کنید که jwt یک نمونه آن است.
یادداشتهای مرتبط
- گرافیک برداری
- ارتقاء امنیت وردپرس
- آبجکت در جاوا اسکریپت
- آشنایی با دو قابلیت جدید مرورگرها: WebRTC و ضبط صدا و تصویر!
- لیست مواردی که برای امنیت برنامه PHP لازم است چک شود
- امنیت در انگولر جی اس
- انواع روش های شناسایی و احراز هویت کاربران یک صفحه وب
- پیشگیری از حملات جعل درخواست بین سایتی
- ساخت PDF آنلاین
- کار با قابلیت Page Visibility و کاربردهای آن
- موثرترین روش برنامه نویسان برای مقابله با کی لاگر ها
- کشیدن و انداختن (رها کردن)
- بهینه سازی و کاهش حجم تصاویر برای استفاده در صفحات وب
- ارسال و دریافت ایمیل با PHP و ساختن اکانت ایمیل
- کار با داده های سلسله مراتبی در پایگاه داده
- تنظیم اچ تی ام ال پیوریفایر
- همه آن چیزهایی که لازم است درباره ی فید بدانید
- بهینه سازی آنلاین سی اس اس و جاوا اسکریپت