توسعه لجستیک نیازمند توسعه زیرساختهای سختافزاری است
انطابق با پیشرفتهای روز دنیای فناوری و استفاده از ابزارهای نوین امری است که پیشبرد…
۱۸ مهر ۱۴۰۳
۱۰ شهریور ۱۴۰۰
زمان مطالعه : ۸ دقیقه
تاریخ بهروزرسانی: ۱۷ آبان ۱۴۰۰
توسعه دولت الکترونیکی طی سالهای گذشته استفاده از عبارت اشتراک گذاری API میان دستگاهها یا شرکتهای مختلف را رایج کرده است، حتی شرکتهای خصوصی نیز برای اینکه امکان استفاده از دادههای خود را برای سایر همکاران و رقبای خود فراهم کنند همواره از اشترک API صحبت میکنند. در پنجمین نشست کلابهاوسی پیوست نیز وقتی مسئولان دیوار، با درخواست استفاده از دیتاهای این پلتفرم مواجه شدند اعلام کردند که «سایر پلتفرمها به زودی میتوانند از API های دیتایی دیوار استفاده کنند»؛ اما API چیست و چطور به ارتباط میان پلتفرمها کمک میکند؟
API مخفف عبارت Application Programming Interface یا رابط برنامه نویسی اپلیکیشن است که به عنوان یک میانجی، امکان صحبت دو اپلیکیشن را فراهم میکند. هربار که از اپلیکیشنی مثل فیسبوک استفاده میکنید، پیغام ارسال میکنید یا وضعیت هوا را روی گوشی خود چک میکنید در واقع در حال استفاده از یک API هستید. در این متن سعی تلاش میکنیم با یک مثال شما را بیشتر با API آشنا کنیم.
وقتی از یک اپلیکیشن در گوشی موبایل خود استفاده میکنید، این اپلیکیشن به اینترنت متصل شده و دادههایی را به یک سرور ارسال میکند. در مرحله بعدی سرور مورد نظر داده را گرفته، تفسیر کرده و پس از انجام اقدامات مورد نیاز پاسخ را به گوشی شما ارسال میکند. سپس اپلیکیشن گوشی شما داده دریافتی را تفسیر کرده و اطلاعاتی که میخواستید را به شما نمایش میدهد. وظیفه API انجام همین فرایند است.
تصور کنید در یک رستوران و در حال خواندن منوی غذاها هستید. آشپزخانه رستوران بخشی از «سیستمی» است که سفارش شما را آماده میکند. اما برای اینکه سفارش شما به آشپزخانه برسد و آماده شده و به شما تحویل داده شود، به یک میانجی نیاز است. در این مرحله پیشخدمت رستوران یا API وارد عمل میشود. او در واقع پیامرسان یا API است که سفارش شما را گرفته و آنرا به آشپزخانه یا «سیستم اصلی» منتقل میکند. سپس همین پیشخدمت پاسخ سیستم که در اینجا غذای سفارش شده است را گرفته و به شما منتقل میکند.
در جهان کامپیوتر نیز همین اتفاق به شکل دیجیتالی رخ میدهد. مثلا وقتی شما در اسنپ یک پرواز را جستجو میکنید و گزینههای مختلف مثل زمان و شهر را مشخص میکنید، اسنپ از طریق API با سرور شرکت هواپیمایی ارتباط برقرار کرده و پس از بررسی پروازهای موجود و صندلیهای خالی، گزینهای که میخواهید را برای شما رزرو میکند.
این رابط یا میانجی در واقع یک سری کدهای برنامه نویسی است که انتقال داده بین یک محصول نرافزاری و دیگری را فراهم میکند. در این کدهای برنامه نویسی شرایط تبادل داده نیز ذکر شده است.
مثلا کد برنامه نویسی مشخص میکند که اپلیکیشن مورد نظر میتواند a و b را از سرور درخواست کند و سرور نیز با x و y به این درخواست پاسخ میدهد.
نرمافزاری که به یک سری اطلاعات یا عملکرد در نرمافزار دیگری نیاز دارد درخواست خود را به API ارائه داده و این رابط مشخص میکند که داده/عملکرد به چه شکلی باید ارائه شود.
از نگاه متخصصان، APIها گاهی در جکم یک قرارداد و نمادی از توافق بین دو طرف عمل میکنند: «اگر طرفی یک درخواست با ویژگیهای مشخص ارسال کند، نرمافزار طرف دوم به این شکل پاسخ میدهد.»
این قرارداد اطلاعات مورد نیاز از جمله نحوه کار با API و استفاده از خدمات آنرا در اختیار توسعه دهندگان میگذارد.
هر API شامل یک سری توابع دستوری است که از نرمافزار میخواهد اقدامات یا خدمات خاصی را به اجرا بگذارد. این توابع دستوری در واقع عبارتهایی هستند که به فعل یا اسم خطم میشوند؛ برای مثال:
این توابع دستوری در متن API مشخص شدهاند.
APIها انواعی دارند که در ادامه به آنها میپردازیم.
API ها را از لحاظ میزبان دسترسی میتوان به سه دسته خصوصی، شراکتی و عمومی تقسیم کرد.
APIهای خصوصی: این میانجیهای نرمافزاری برای خدمات و ارائه راهحل در درون یک سازمان یا شرکت طراحی میشوند. توسعه دهندگان شرکت یا پیمانکارها میتوانند از این API برای یکپارچه سازی سیستمهای IT یا اپلیکیشنها شرکت استفاده کنند یا سیستم و اپلیکیشن جدید طراحی کنند. حتی اگر اپلیکیشن در اختیار عموم قرار بگیرد، رابط یا میانجی تنها در اختیار کسانی است که مستقیما با سازنده API در ارتباط هستند. شرکتها با استفاده از API خصوصی به طور کامل روی کاربران و نحوه استفاده نظارت دارند.
APIهای شراکتی: APIهای شراکتی همانطور که از نامشان پیداست در واقع فعالیت بین دو شریک تجاری را تنظیم میکنند. یکی از رایجترین موارد استفاده از APIها، تلفیق اپلیکیشن دو شرکت در یکدیگر است. یک شرکت در این حالت امکان دسترسی به دادهها و یا قابلیتهای خود را در اختیار شریکش میگذارد و با این کار درآمدی تازهای را ممکن میکند. همچنین طرفین قرارداد میتوانند بر نحوه استفاده از داراییهای دیجیتال را نیز تحت نظارت داشته باشند.
APIهای عمومی: این APIها که به توسعهدهنده محور یا خارجی هم مشهور هستند در اختیار تمام توسعه دهندگان شخص ثالث قرار میگیرند. یک برنامه API عمومی به افزایش آگاهی درمورد برند و دسترسی به دیگر منابع درآمدی کمک میکند.
API عمومی به دو نوع است، متن باز (Open API) و تجاری. در API متن باز تمام ویژگیها عمومی هستند و بدون محدودیت یا شرطی میتوان از آن استفاده کرد. مثال میتوان اپلیکیشنی طراحی کرد که بدون نیاز به تاییدی از ارائه دهنده یا کسب مجوز از API استفاده کند. در تعریف این نوع API ذکر شده که توصیف و هرگونه مستند مرتبط با این نوع API باید به صورت آزاد در اختیار همه قرار بگیرد و بتوان از این API به راحتی برای ساخت و آزمایش اپلیکیشنها استفاده کرد.
اما کاربران API تجاری برای استفاده از آن هزینهای پرداخت میکنند. اکثر ارائه دهندگان این نوع API یک دوره آزمایشی و رایگان را برای کاربران در نظر گرفته و شرکت یا توسعه دهنده پیش از خرید اشتراک میتواند آنرا آزمایش کند.
APIها را میتوان براساس سیستمهایی که برایش طراحی شدهاند نیز دسته بندی کرد.
APIهای پایگاه داده: APIهای امکان ارتباط بین اپلیکیشن و سیستم مدیریت پایگاه داده را فراهم میکنند. توسعه دهندگان با طراحی پرسشنامه به دادهها، جداول تغییرات و غیره دسترسی میکنند.
APIهای سیستم عاملی: این گروه از APIها، نحوه استفاده اپلیکیشنها از منابع و خدمات سیستم عاملها را مشخص میکنند. هر سیستم عامل یک دسته API دارد و برای مثال میتوان به API ویندوز و لینوکس اشاره کرد.
APIهای ریموت یا از راه دور: APIهای ریموت در واقع استانداردهای ارتباط با اپلیکیشنهای موجود در ماشینهای مختلف را تعریف میکنند. به عبارت دیگر، یک نرمافزار به منابعی که خارج از دستگاه قرار دارد دسترسی پیدا میکند. از آنجایی که اپلیکیشنهای ریموت و از راه دور با استفاده از یک شبکه ارتباطی و به ویژه اینترنت به منبع اطلاعات دسترسی دارند، این دسته از APIها براساس استانداردهای وب نوشته میشوند. API اتصال به پایگاه داده جاوا (Java Database Connectivity API) و API فراخوان متد جاوا از راه دور (Java Remote Method Invocation API) دو مثال از این رابطهای برنامه نویسی اپلیکیشن هستند.
APIهای وب: این دسته رایجترین نوع API است. APIهای وب امکان انتقال داده و عملکردی بین سیستمهای وب محوری که ساختار کاربر سروری دارند را فراهم میکنند. این APIها عمدتا با استفاده از پروتکل انتقال هایپرتکس (HTTP)، مسئول انتقال درخواست اپلیکیشنهای وب و بازگرداندن پاسخ از سرورها هستند.
توسعه دهندگان با استفاده از این APIها میتوانند قابلیتهای اپلیکیشن یا وبسایت خود را توسعه دهند.
در زیر چند مثال از شناخته شده ترین APIها را برای شما ارائه کردیم که با نحوه کار یک رابط برنامه نویسی بیشتر آشنا شوید.
نقشه گوگل (Google Maps): گوگل از جمله مهمترین غولهای تکنولوژی در جهان اینترنت است و این شرکت استانداردهایی را برای فعالیت دیگر شرکتها مشخص کرده است. اکثر وبسایتهایی که نقشهای در وبسایت خود قرار دادهاند از API نقشه گوگل استفاده میکنند. برای مثال API مسیریابی گوگل از یک درخواست HTTP استفاده کرده و پاسخ را به وبسایت مورد نظر ارائه میدهد.
والکان (Vulkan): والکان یک API میان پلتفرمی است که در سطح سیستم عامل فعالیت میکند. این API به توسعه دهندگان اجازه میدهد تا بخشهای گرافیکی اپلیکیشن خود را طراحی کنند و وظیفهاش ایجاد ارتباط بین اپلیکیشن و واحد پردازش گرافیکی است.
API آبوهوا (WeatherAPI): این رابط یک ارائه دهنده رایگان اطلاعات جغرافیایی و آبوهوایی است و چندین API در زمینههای مختلف از جمله پیشبینی هوا، بررسی IP، ورزش، ستاره شناسی، جغرافیا و منطقه زمانی دارد. توسعه دهندگان برای استفاده از این API میتوانند از HTTP یا HTTPS استفاده کنند.
APIها بازیگران مهم و پشت صحنه تکنولوژی هستند که همکاری تجاری و تبادل منابع را در جهان دیجیتالی فراهم میکنند. بازیگران این صحنه یعنی تصمیم گیرندگان شرکتی و توسعه دهندگان نرمافزار و سایت باید بهترین API را با توجه به نیازهای خود انتخاب و به بهترین نحو از آن استفاده کنند.