انواع API | یکی دوتا نیست که!
بله، تنوع APIها زیاد است. در واقع APIها به دلیل همین تنوع، از جهات گوناگون قابل بررسی و دستهبندی هستند. به این معنی که تقسیمبندی آنها بستگی دارد به اینکه با چه رویکردی بخواهید آنها را بررسی کنید. این دستهبندیها بر اساس پروتکل، استراتژی مدیریت، معماری و موارد دیگر میتوانند انواع گوناگونی داشته باشند. بنابراین اگر بخواهیم درباره انواع API صحبت کنیم باید اول زاویه نگاه و ویژگیهای مورد نظرمان را مشخص کنیم. در این مطلب قصد داریم تا از جهات گوناگون، انواع API را معرفی کنیم.
انواع کلی API
تقسیمبندی APIها بر اساس سیاستهای انتشار عبارتند از:
- ایپیآی عمومی (Open API)
این API بهعنوان API باز هم شناخته میشود. در واقع API باز یا عمومی بدون هیچ محدودیتی برای همه دردسترس و قابل استفاده است.
- ایپیآی خصوصی (Internal API)
همانگونه که از نامش مشخص است، این API فقط در داخل یک سازمان یا گروه مشخص قابلیت دسترسی دارد و در خارج از آن، هیچکس از وجود API خصوصی مطلع نیست.
- ایپیآی اشتراکی (Partner API)
این API عمومی نیست و استفاده از آن نیازمند دریافت مجوز دسترسی است. بنابراین توسعهدهندگان لازم است تا اجازه دسترسی به آن را داشته باشند.
- ایپیآی ترکیبی (Composite API)
همانطور که از نامش میتوان متوجه شد، این API ترکیبی از چند سرویس و داده گوناگون است. API ترکیبی بهویژه برای میکروسرویسها بسیار کاربردی است چراکه میتوانند همزمان به چندین منبع برای دریافت اطلاعات دسترسی داشته باشند.
انواع API بر اساس پروتکل
هدف پروتکلهای API انتقال داده میان وبسرویسها بهشکلی استاندارد است. استانداردسازی انتقال داده، به معنی توانایی برقراری ارتباط میان سیستمهای گوناگون که با زبانهای برنامهنویسی متفاوت نوشته شدهاند، یا بر روی سیستم عاملهای مختلف اجرا میشوند و یا مبتنی بر فناوریهای گوناگون هستند، است. بر این اساس پروتکلها عبارتند از:
- SOAP
پروتکل SOAP با XML ساخته میشود و امکان دریافت یا ارسال داده را از طریق SMTP و HTTP برای کاربر فراهم میکنند. با این پروتکل، اشتراک اطلاعات میان اپلیکیشنها یا اجزای نرمافزاری که به زبانهای مختلف نوشته شدهاند، آسانتر میشود.
- REST
مجموعهای از اصول معماری وبAPI است که نسبت به سایرین کاربرد آسانتری دارد. ایجاد API با این پروتکل، با پروتکل SOAP هم امکانپذیر است، اما معمولا این دو استاندارد رقیب یکدیگر در نظر گرفته میشوند.
- XML-RPC
این پروتكل برای انتقال دادهها، به یک قالب خاص از XML متكی است، درحالیكه SOAP از قالب XML اختصاصی استفاده میكند. XML-RPC قدیمیتر از SOAP است اما از این جهت که از کمترین استفاده را از پهنای باند میکند، بسیار سادهتر و نسبتا سبکتر است.
- JSON-RPC
این پروتکل هم فقط بهجای قالب XML از قالب JSON استفاده میکند هرچند که بسیار مشابه یکدیگر هستند.
انواع APIها بر اساس کاربرد
انواع API را بر اساس کاربرد و نوع سیستمهایی که برای آنها طراحی میشوند، نیز میتوان دستهبندی کرد.
- ایپیآی پایگاه داده
این دسته از APIها، میان یک اپلیکیشن و سیستم مدیریت پایگاه داده، ارتباط برقرار میکنند. توسعهدهندگان با نوشتن کوئریهایی برای ایجاد دسترسی به دادهها، تغییر جدولها و موارد مشابه، با پایگاه داده کار میکنند.
- ایپیآی سیستمعامل
این گروه از APIها، تعیین میکنند که اپلیکیشنها به چه نحوی از منابع و سرویسهای سیستمعامل استفاده کنند. در واقع هرکدام از سیستمعاملها، مجموعه API های خودشان را دارند.
- ایپیآی ریموت
این API، استانداردهایی برای تعامل اپلیکیشنهایی که روی دستگاههای گوناگون راهاندازی شدهاند، تعریف میکنند. به عبارت دیگر، یکی از اپلیکیشنها، به منابع خارج از دستگاهی که بر روی آن قرار دارد نیز دسترسی خواهند داشت. با توجه به اینکه دو اپلیکیشن از طریق یک شبکه ارتباطی که معمولاً اینترنت است، با یکدیگر تعامل دارند، اغلب APIهای ریموت، منطبق با استانداردهای وب، نوشته میشوند.
- ایپیآی تحت وب
دسته بعدی، API تحت وب است که از متداولترین انواع API هستند. APIهای تحت وب، دادههای قابل خوانش برای ماشین ایجاد میکنند و امکان انتقال آن دادهها میان سیستمهای تحت وب را فراهم میکنند. این APIها، معمولاً درخواستهای اپلیکیشنهای تحت وب را به سرورها و پاسخ سرورها به اپلیکیشنها را با استفاده از پروتکل HTTP، انتقال میدهند.
توسعهدهندگان میتوانند از این APIها، به منظور توسعه کارکردهای اپلیکیشنها و وبسایتهای خود استفاده نمایند. برای نمونه میتوان به Pinterest API اشاره کرد که ابزاری برای افزودن دادههای صفحه Pinterest کاربران به وبسایت دیگر را دارد یا Google Maps API، که امکان اضافه کردن موقعیت یک مکان را برای وبسایتها فراهم میکند.
این APIهای کارراهانداز و نزدیکترین دوستان کسب و کارها
در این مقاله به جوانب مختلف انواع API و دستهبندیهای گوناگون آن پرداخته شد. شناخت این تنوع و درک تفاوتهای آنها به ما کمک میکند تا بیشتر با کاربردها و نحوه استفاده از APIها آشنا شویم. به این ترتیب با توجه به کارکرد و مزایا و معایب هریک، میتوانیم تصمیمگیری بهتر و اثربخشتری در رابطه با استفاده از APIها داشته باشیم.
مطلبی دیگر از این انتشارات
10 نکته برای برنامهنویسان که از نان شب واجبتر است!
مطلبی دیگر از این انتشارات
برنامهنویس پولدار، برنامهنویس بیپول
مطلبی دیگر از این انتشارات
اگر تا به حال نام API به گوشتان خورده اما ایدهای راجع به آن ندارید، این پست مخصوص شما است.