کلمهٔ سه بخشی "رابط برنامهنویسی کاربردی" یا به اختصار "API"، همانطور که از ابتدای کار معلوم است، به راحتی به فارسی ترجمه نمیشود. استفاده از این واژه در زبان فارسی دشوار است، به خصوص که اصطلاحات تخصصی انگلیسی مانند این اغلب در ذهن ما، بدون ترجمه مستقیم، جا نمیگیرند. در این مقاله، از "API" به صورت انگلیسی استفاده میکنم و چالش ترجمهٔ آن را به زبانشناسان میسپارم.
در دنیای امروز، با پیشرفت فناوری و گسترش استفاده از گوشیهای هوشمند، کامپیوترها، و دستگاههای دیجیتال، ما به یک شبکهٔ ارتباطی پیوسته و نوآورانه وارد شدهایم. این شبکه مدرن، اتصالات پرسرعت و با کیفیتی بین سرورها، دستگاهها، و ابزارهای دیجیتالی مختلف را امکانپذیر کرده است.
ممکن است از خود بپرسیم که این شبکه ها چگونه ایجاد شده و در لایه زیرساخت فناوری ارتباطات چگونه اطلاعات و داده ها در قالب متن، عکس، ویدیو و دیگر فرم های رایج از یک نقطه به نقطه دیگر منتقل میشوند؟
برای روشن شدن این موضوع، بهتر است مثالی بدوی از ارتباطات بین انسانها را در نظر بگیریم. در این ارتباطات، زبان، حروف اشاره، حرکات دست و پا و حتی خط و نوشتار ابزارهایی هستند که برای انتقال مفاهیم و برقراری ارتباط با دیگران استفاده میشوند.
به طور خلاصه، این ابزارها روشهایی برای انتقال مفهوم و برقراری ارتباط با دیگری هستند.
از منظر حمل و نقل به عنوان مثال، در گذشته برای ارتباط و انتقال اطلاعات میان دو نقطهٔ دور از هم از پیکرسانان استفاده میشد.
بنابراین، با گسترش دانش ارتباطی، ابزارهای انتقال و تبادل اطلاعات جدیدی پدید آمده که هر یک نیز در بستر زمان دچار دگرگونی شدهاند.
به عنوان مثال ابزارهایی مثل تلگراف و تلفن برای تبادل اطلاعات و یا حتی در بستر حمل و نقل گسترش راه های زمینی، دریایی و هوایی مثل استفاده کاربری از ماشین به جای حیوان. قطار، کشتی، هواپیما و تا امروز که صحبت از خودروهای برقی و ماشین های بدون سرنشین هست. تمامی این نوآوری ها سرعت انتقال و جابجایی را بیشینه کرده اند.
از این منظر، رویکرد ذکر شده در شبکه حمل و نقل شباهت بسیاری به نحوه گسترش و تحول شبکه تبادل اطلاعات از آغاز ورود ابزارهای سادهای مثل تلفن، ماشین حساب، کامپیتور ها تا دستگاه های هوشمند و دیجیتالی امروز دارد. اگر کابل ها و پایگاه ها بستر ایجاد ارتباط مابین دو دستگاه تلفن را فراهم میسازند، API ها نیز چنین نقشی را مابین هر دستگاهی که نیازمند ایجاد تعامل و ارتباط با دستگاه دیگر هست فراهم میکنند.
به بیان تخصصی، API به مجموعه ای از پروتکل ها، روالها و ابزارهایی گفته میشود که به دستگاه های نرم افزاری این اجازه را میدهد تا با یکدیگر ارتباط برقرار کنند. API به عنوان پل بین دو برنامه عمل میکند و به آنها اجازه میدهد داده ها و عملکرد های خود و یا همان اطلاعات را با یکدیگر به اشتراک بگذارند.
یکی از تعاریف موجود درباره API از مثال عامیانه گارسون در رستوران استفاده میکند. به این معنی که مشتری سفارش خود را از منو انتخاب و آن را به گارسون اعلام میکند. گارسون در قالب API این اطلاعات را به آشپزخانه یا سرور میرساند. در این مرحله، درخواست مشتری در فرآیند انجام و خروجی آن در قالب غذا تحویل داده میشود. اما ممکن است در این فرآیند خطاهایی رخ دهد؛ به عنوان مثال، سفارش دهنده ممکن است درخواستی را بکند که در منو موجود نباشد، که این خطا به عنوان "HTTP error code" شناخته میشود. همچنین ممکن است سفارش دهنده از طریق تلفنی درخواستی داشته باشد، اما به دلیل سوابق امنیتی یا حجم بالای ترافیک، درخواست او تایید نشود یا سرور برای سرویسدهی قابلیت کافی را نداشته باشد.
در این قسمت لیستی از API های موجود بیان میشود:
1. وب APIها: اینها رایجترین نوع API هستند و از طریق پروتکلهای HTTP یا HTTPS ارتباط برقرار میکنند. این APIها به برنامههای کاربردی اجازه میدهند تا با سرورها تعامل داشته باشند و دادهها را مبادله کنند.
مثال: Google Maps API که به شما اجازه میدهد نقشهها را در وبسایت خود قرار دهید یا Twitter API که به برنامهتان امکان میدهد توییتها را بخواند و ارسال کند.
2. سیستمعامل APIها: این APIها به برنامهها اجازه میدهند تا با سیستمعامل تعامل داشته باشند.
مثال: Android API که به برنامهها اجازه میدهد به ویژگیهای گوشی هوشمند مثل دوربین و GPS دسترسی داشته باشند.
3. کتابخانههای نرمافزاری (Software Libraries): بسیاری از کتابخانههای نرمافزاری APIهایی را فراهم میکنند که برنامهنویسان میتوانند از آنها برای انجام وظایف خاص استفاده کنند.
مثال: سرویس NumPy یک کتابخانه پایتون است که امکان انجام عملیات عددی و محاسباتی پیچیده را فراهم میکند. با استفاده از NumPy، برنامهنویسان قادرند تا با دادههای عددی به صورت موثر و بهینه کار کنند.
4. سختافزار APIها: برخی APIها به برنامهها اجازه میدهند تا با سختافزار ارتباط برقرار کنند.
مثال: درایورهای کارتهای گرافیک که به برنامهها اجازه میدهند از قدرت گرافیکی استفاده کنند، یا APIهای چاپگر که به نرمافزارها اجازه میدهند با چاپگرها ارتباط برقرار کنند و دستور چاپ ارسال کنند.
5. خدمات شخص ثالث: بسیاری از خدمات آنلاین APIهایی را ارائه میدهند که به برنامهها اجازه میدهد تا از قابلیتهای آنها استفاده کنند.
مثال: Stripe API برای پردازش پرداختها در وبسایتهای فروشگاهی، یا Twilio API که به شما اجازه میدهد پیامک ارسال یا تماس تلفنی برقرار کنید.
6. پایگاههای داده: APIها میتوانند برای دسترسی به پایگاههای داده و اجرای عملیاتهای CREATE,READ,UPDATE,DELETE یا به اصطلاح CRUD استفاده بشوند.
مثال: APIهای SQL برای دسترسی به دادههای ذخیره شده در سرورهای پایگاه داده، یا APIهای NoSQL مانند MongoDB برای کار با دادههای غیرساختاریافته.
به طور کلی، هر چیزی که نیاز به تعامل برنامههای نرمافزاری مختلف با یکدیگر یا با سختافزار دارد، میتواند API داشته باشد. APIها به عنوان پلهای ارتباطی بین سیستمها عمل میکنند و به آنها امکان میدهند تا به صورت یکپارچه و کارآمد با هم کار کنند. این یعنی میتوان به راحتی از قابلیتهای مختلف برنامه ها استفاده کرده و به دادههای مورد نیاز خود دسترسی پیدا کنیم، بدون اینکه نیاز باشد همه چیز را از صفر بنویسیم.
پایان
پ.ن: در تهیه این متن از ابزار ChatGPT کمک گرفته شده است.