API چیست؟

تعریف API به زبان ساده:

مکانیزمی که اجازه میدهد اجزای دو سیستم نرم افزاری با یکدیگر در ارتباط باشند. این ارتباط بر اساس یک سری پروتوکل و تعاریف می باشد. برای مثال یک سایت پیش بینی وضع هوا ممکن است اطلاعات خوبی داشته باشد. حال اپلیکیشن پیش بینی وضع هوا روی گوشی خود را در نظر بگیرید. این اپلیکیشن برای ارتباط با آن سایت و بروز رسانی وضعیت هوا روی گوشی شما نیاز به API دارد.

API مخفف چیست؟

Application Programming interface جواب این سوال است. در این عبارت ، کلمه Application به هر نرم افزاری اطلاق میشود که یک وظیفه خاص دارد. کلمه interface مربوط به تعامل بین دو اپلیکیشن است. این تعامل، تعریف کننده چگونگی ارتباط بویژه request و response است. این قوانین در API documentation ذکر میشود تا هر کسی که علاقه دارد یا برنامه نویسان در هنگام نیاز به آن رجوع کنند.

API ها چگونه کار میکنند؟

معماری api معمولا در قالب کلاینت و سرور تشریح میشود. اپلیکیشن ریکوئست را ارسال میکند (که به آن کلاینت گویند) و اپلیکیشن دیگر جواب یا response ارسال میکند که به آن server میگویند. در مثال سایت پیش بینی وضع هوا، دیتابیس سایتی که اطلاعات هوای شهرها در آن موجود است نقشserver را دارد و تمام اپلیکیشن های گوشی موبایل کاربران مشتری یا client یا کلاینت 🙂 هستند.

Api ها به چهار روش مختلف میتوانند کار کنند: (متناسب با اینکه چه زمانی و به چه دلیل ساخته شده اند)

1- SOAP APIs 

این دسته از api ها از پروتوکل ساده Object Access Protocol استفاده میکنند. کلاینت و سرور از طریق XML با هم در ارتباط هستند. این نوعی از API بود که انعطاف پذیری کمی داشت و در گذشته رواج بیشتری داشت و اکنون کاربرد کمتری دارد.

2-RPC APIs

به این API ها Remote Procedure Calls میگویند. کلاینت ، پروسه یا فانکشن را روی سرور تکمیل میکند و سرور نتیجه یا خروجی را به کلاینت برمیگرداند.

3-Websocket APIs

این API مدرن نوع دیگری است که از json object برای انتقال داده استفاده میکند. این API از ارتباط دو طرفه بساپورت میکند.(ترجمع درست: قابلیت ارتباط دو طرفه بین کلاینت و سرور را دارد.)

سرور میتواند با کلاینت ارتباط داشته باشد (پیام جواب را بفرستد (can send callback message to client)) که این نسبت به rest API مقرون به صرفه تر (efficient) تر است.

3- REST APIs

این نمونه پر کاربرد ترین API در سطح وب هستند. کلاینت درخواست یا ریکوئست خود را به سرور (به عنوان دیتا) ارسال میکند. سرور از این ورودی به عنوان استارتر فانکشن خود استفاده میکند و خروجی مناسب را به کلاینت میفرستند. در ادامه rest API را عمیقتر بررسی میکنیم.

REST APIها چه هستند؟

کلمه rest برگرفته از Representational State Transfer است. REST مجموعه از فانکشنها نظیر get, put ,delete را تعریف میکند که مشتری توسط آن می تواند به سرور دیتا متصل شود. کلاینتها و سرورها دیتا را از طریق پروتوکل http تبادل میکنند.

مهمترین ویژگی Rest Api ویژگی stateless بودن آن است. یعنی سرور دیتای مشتری را در فاصله بین دو ریکوئست، ذخیره نمیکند. درخواستهای مشتری مانند url های نوشته شده در بروزره برای مشاهده وبسایت هستند. response برگشت داده شده از سرورها، دیتای ساده ای هستند که فاقد رندر گرافیکی صفحات وب هستند.

web Api ها چه هستند؟

وبAPI یا وب سرویس یک application processing interface بین سرور وب و بروزر است. تمام سرورهای وب از نوع API هستند اما همه API ها از نوع سرور وب نیستند. REST API نوع خاصی از Web API است که از ساختار استاندارد توضیح داده شده در بالا تبعیت میکند.

اصطلاحات مختلفی در حوزه API وجود دارد. برای مثال JAVA API یا Service API. زیرا API ها قبل از world wide web وجود داشته اند. Web API های مدرن از نوع REST هستند و اصطلاخات به کار رفته ممکن است شبیه به هم باشند.

API integrations یا یکپارچه سازی API چیست؟

API integration اجزای نرم افزاری هستند که به صورت اتوماتیک دیتا را بین کلاینت و سرور update میکنند.

برای مثال زمانی که به طور اتوماتیک تصاویر گالری موبایل شما با cloud سینک میشود یا زمانی که زمان و تاریخ لبتاب شما موقع رفتن به یک منطقه جغرافیایی دیگر به طور اتوماتیک سینک میشود.

شرکتها از این قابلیت میتوانند در کاربردهای زیادی سود استفاده کنند.

مزایای Rest API چه هستند؟

4 مزیت اصلی دارند:

1. Integration  یا یکپارچه سازی

API ها برای یکپارچه سازی اپلیکیشن های جدید با سیستم نرم افزاری موجود استفاده میشوند. این باعث افزایش سرعت دولوپ میشود. زیرا دیگر نیازی به نوشتن از صفر همه موارد نیست. (سینک شدن اتوماتیک). از API برای بهبود وارتقاع کد نوشته شده فعلی استفاده میشود.

2. Innovation  یا نوع آوری

صنایع جدید میتوانند با ظهور app جدید خود را به روز رسانی کنند. بیزنس ها باید به سرعت بروز شوند و سرویسهای نوع آورانه را توسعه دهند. آنها میتوانند به راحتی با استفاده از API ها کد خود را به روز کنند بدون اینکه مجبور باشند تمام کدهای خود را از صفر بنویسند.

3. Expansion

با وجود API هست که بیزنس ها متوجه نیازهای مشتریان در پلتفرمهای مختلف میشوند. برای مثال API مربوط به MAP اجازه میدهد اطلاعات نقشه در وبسایت یا IOS یا android وجود داشته باشد. به همین روال هر کسب و کار میتواند اجازه دسترسی به API های خود را به صورت رایگان یا غیر رایگان در اختیار سایرین قرار دهد.

API بعنوان gateway بین دو سیستم است. هر سیستم موظف است تغییرات داخلی ایجاد کند تا API تحت تأثیر قرار نگیرد. به این ترتیب، هرگونه تغییر کد در آینده توسط یک طرف تأثیری بر طرف دیگر ندارد.

انواع API چه هستند؟

API ها بر اساس معماری و حوزه کاربرد تقسیم میشوند. قبلا در مورد معماری آنها صحبت کردیم(rest, web , …) . حال در مورد حوزه کاربرد خواهیم گفت:

Private APIs – خصوصی ها

درون یک سازمان به کار میرود و برای اهداف سازمانی و برای اتصال بین زیرمجموعه های درونی شرکت.

Public APIs یا عمومی ها

همه میتوانند از آن استفاده کنند. معمولا هزینه ای برای استفاده از آن پرداخت نمیشود.

Partner APIs  یا شراکتی

تنها برنامه نویسان یا شرکای تجاری به آن دسترسی دارند تا بتوانند به اهداف شرکت مربوطه کمک کنند .

Composite APIs – ترکیبی

ترکیب دو یا چند API تا بتوان به اهداف پیچیده دست پیدا کرد.

API endpoint چیست و چرا مهم است؟

API endpoint نقطه نهایی در ارتباطات سیستمی است. که شامل server urls و سرویسها و تمام لوکیشنهایی است که از آن ها داده انتقال و دریافت میشود. به دو دلیل اهمیت زیادی دارند.

1. Security امنیت

API endpoint جایی است که امکان هک کردن در آن وجود دارد. بنابراین مانیتور کردن این قسمت اهمیت زیادی دارد.

2. Performance- عملکرد

API endpoint بویژه در سیست

مهایی که ترافیک زیادی دارند میتواند باعث افت عملکرد مطلوب سیستم شود.

چگونه امنیت REST API را تامین کنیم؟

تمام API ها باید مانیتورینگ شده و از امنیت آنها اطمینان کسب نمود. دو روش اصلی برای تامین امنیت API ها عبارتند از:

1. Authentication tokens – توکن اهراز هویت

این ها در صدور مجوز تماس از طریق API به کار میروند. ( to authorize users to make the API call). توکن ها چک میکنند که اطمینان پیدا کنند که دقیقا چه کسی در حال درخواست زدن است و اینکه آیا اجازه دسترسی به API call را دارند یا نه. برای مثال زمانی که به سرور ایمیل خود لاگین میکنیم کلاینت ایمیل شما از توکن Authentication برای ایجاد امنیت استفاده میکند.

2. API keys – کلیدهای API

این کلیدها برنامه یا اپلیکیشنی که API call را انجا میدهد را شناسایی میکنند. آنها اپلیکیشن را شناسایی میکنند و مطمئن میشوند که اجازه دسترسی برای ایجاد call را داشته باشد. آنها به اندازه توکن ها ایمن نیستند اما به وسیله آنها میتوان مانیتورینگ API را انجام داد و داده هایی را متناسب با نوع کاربرد بدست آورد.

در هنگام مشاهده برخی از وبسایتها ممکن است رشته طولانی از کاراکترها و اعداد را در URL بروزر خود ببینیم. این رشته طولانی همان API KEY است که وبسایت برای ایجاد internal call استفاده میکند.

چگونه API ایجاد کنیم؟

ساختن یک API که سایر توسعه دهندگان بخواهند با آن کار کنند و به آن اعتماد کنند، به تلاش زیادی نیاز دارد. در زیر 5 مرحله ساخت یک API با کیفیت شرح داده میشود.

1. Plan the API – برنامه ریزی

مشخصه های API در برخی موارد مانند Open API در بلوپرینت (نقشه ساخت) برای بیان نحوه طراحی ذکر میگردد. بهتر است. بهتر است از قبل در مورد کاربردهای مختلف API تامل شود و اطمینان حاصل شود که API جدید با API فعلی سازگار باشد.

2. Build the API – ساخت API

طراحان API آنها را با استفاده از کد boilerplate نمونه سازی می کنند. پس از آزمایش نمونه اولیه، توسعه دهندگان می توانند آن را با مشخصات داخلی شخصی سازی کنند.

3. Test the API   – تست

تست API همانند تست نرم افزار است و باید برای جلوگیری از باگ و نقص انجام شود. ابزارهای تست API را می توان برای تست قدرت API در برابر حملات سایبری استفاده کرد.

4. Document the API   – مستند سازی

در حالی که API ها خودشان را توضیح میدهند (self-explanatory) هستند، مستندات API به عنوان یک راهنما برای بهبود عملکرد استفاده میشود. APIهایی که به خوبی مستندسازی شده باشند و طیف وسیعی از توابع وقابلیتها را دارند، محبوبیت بیشتری دارند.

5. Market the API – فروش

همانطور که آمازون یک بازار آنلاین برای خرده‌فروشی است، بازارهای API نیز برای توسعه‌دهندگان برای خرید و فروش سایر APIها وجود دارد. لیست کردن API ساخته شده شما در یک فهرست در سایت شما می‌تواند به شما امکان کسب درآمد از آن را بدهد.

تست API چیست؟

استراتژی های تست API مشابه سایر روش های تست نرم افزار است. تمرکز اصلی تست بر اعتبارسنجی پاسخ های سرور است. تست API شامل موارد زیر است:

  • ایجاد چندین درخواست تستی به نقاط پایانی API برای آزمایش عملکرد.
  • نوشتن تست های واحد برای بررسی منطق تجاری و صحت عملکردی.
  • تست امنیت با شبیه سازی حملات سیستم

چگونه مستند سازی API را انجام دهیم؟

مستندسازی اصولی بخشی از پروسه مدیریت API است. این کار میتواند به صورت اتوماتیک توسط ابزارها و یا به صورت دستی انجام شود. برخی از بهترین روش ها به شرح زیر هستند:

  • نوشتن توضیحات به زبان انگلیسی ساده و خوانا.
  • اسنادی که توسط ابزارها تولید می‌شوند ممکن است پرحرف بوده و نیاز به ویرایش داشته باشند.
  • استفاده از نمونه کد برای توضیح عملکرد
  • نگهداری اسناد به گونه ای که دقیق و به روز باشد.
  • بیان تمام مشکلاتی که API می تواند برای کاربران حل کند.

چگونه از API استفاده کنیم؟

مراحل اجرای یک API جدید عبارتند از:

1- دریافت کلید API :
این کار با ایجاد یک حساب تایید شده با ارائه دهنده API انجام می شود.
2- یک سرویس گیرنده API در قالب HTTP راه اندازی کنید.
این ابزار به شما اجازه می دهد تا با استفاده از کلیدهای API دریافتی، درخواست های API را به راحتی مدیریت کنید.
3-اگر کلاینت API ندارید، می توانید سعی کنید با مراجعه به اسناد API، درخواست را در مرورگر خود ایجاد کنید.
4- هنگامی که با new API syntax مشکلی نداشتید، می‌توانید استفاده از آن را شروع کنید.

کجا می توانم API های جدید پیدا کنم؟


API های وب جدید را می توان در بازارهای API و دایرکتوری های API یافت. بازارهای API پلتفرم‌های باز هستند که هر کسی می‌تواند یک API را برای فروش بگذارد. دایرکتوری های API مخازن کنترل شده ای هستند که توسط مالک دایرکتوری تنظیم می شوند. طراحان API خبره ممکن است یک API جدید را قبل از افزودن آن به فهرست خود ارزیابی و آزمایش کنند.

برخی از وب سایت های محبوب API عبارتند از:

  • Rapid API – بزرگترین بازار جهانی API با بیش از 10000 API عمومی و 1 میلیون توسعه دهنده فعال در سایت. RapidAPI به کاربران این امکان را می دهد که قبل از خرید، API ها را مستقیماً روی پلتفرم آزمایش کنند.

  • Public APIs  – این پلتفرم APIهای راه دور را در 40 دسته خاص دسته بندی می کند، که مرور و یافتن یک مورد مناسب برای رفع نیازهای شما را آسان تر می کند.

  • APIForThat و APIList  – هر دو این وب سایت دارای لیستی از بیش از 500 API وب به همراه اطلاعات عمیق در مورد نحوه استفاده از آنها هستند.

API gateway چیست؟

API Gateway یک ابزار مدیریت API برای مشتریان سازمانی است که از طیف وسیعی از خدمات back-end استفاده می کنند. دروازه‌های API معمولاً وظایف رایجی مانند احراز هویت کاربر، آمار و مدیریت نرخ را انجام می‌دهند که در همه تماس‌های API قابل اجرا هستند.

Amazon API Gateway یک سرویس کاملاً مدیریت شده است که این امکان را برنامه نویسان میدهد که اموری نظیر ایجاد، انتشار، نگهداری، نظارت و ایمن کردن API ها را در هر مقیاسی انجام دهند. API Gateway تمام امور مرتبط از قبیل پذیرش و پردازش هزاران تماس API همزمان، مدیریت ترافیک، پشتیبانی CORS، مجوز و کنترل دسترسی، کنترل، نظارت و مدیریت نسخه API را انجام می‌دهد.

GraphQL چیست؟


GraphQL یک زبان پرس و جو است که به طور خاص برای API ها توسعه یافته است. این زبان باعث میشود تنها آنچه مشتری درخواست کرده در اختیارش قرار گیرد و نه بیشتر . این برنامه به گونه ای طراحی شده است که API ها را سریعتر، انعطاف پذیرتر و با توسعه دهندگان سازگارتر کند.

به عنوان جایگزینی برای REST ، زبان GraphQL به توسعه دهندگان front-end این امکان را می دهد که تنها با یک نقطه پایانی GraphQL بتوانند از چندین پایگاه داده، میکروسرویس ها و API ها را درخواست دهند. سازمان‌ها انتخاب می‌کنند که API با GraphQL بسازند، زیرا به آنها کمک می‌کند تا برنامه‌ها را سریع‌تر توسعه دهند. اطلاعات بیشتر در مورد GraphQL را اینجا بخوانید.

منابع:

منبع1 : +++

دیدگاهی بنویسید

نشانی ایمیل شما منتشر نخواهد شد.