یکی از ویژگیهای مهم دنیای برنامهنویسی مدرن، APIها هستند. هر اپلیکیشنی فارغ از آنکه برای عموم منتشر میشود و یا آنکه یک نرمافزار خصوصی است، به APIهای قدرتمند و مناسبی نیازمند است. با این حال پیادهسازی و نگهداری از APIها میتواند کار سختی باشد. به همین دلیل امروز قصد داریم در ارتباط با ابزارهایی صحبت کنیم که به شما قابلیت مدیریت APIها را میدهند.
بیشتر این ابزارها ویژگیهای مشترک و البته مهم را به توسعهدهندگان ارائه میکنند. در بین این ویژگیها میتواند به routing و proxying، انتقال داده و URL، آنالیز و… اشاره کرد.
3scale
3scale در ابتدا به صورت یک نرمافزار منبع بسته منتشر میشد اما بعد از آنکه Red Hat آن را خریداری نمود به صورت متن باز منتشر شد. Red Hat یک پیادهسازی منحصر به فرد و البته تجاری از این محصول را ارائه میکند اما شما میتوانید به صورت رایگان براساس لایسنس Apache آن را دریافت کرده و به صورت جداگانه از آن استفاده نمایید.
ویژگیهایی که 3scale در اختیار شما قرار میدهد عبارت است از نسخهبندی API، کنترل دسترسی و نرخ محدودیتگذاری، کنترل های امنیتی و آنالیز. همچنین در کنار این موارد 3scale یک CMS منحصر به فرد را ارائه میکند که به توسعهدهندگان این اجازه را میدهد تا بتوانند برای APIهایشان مستندات بنویسند.
اگر بخواهید 3scale را نصب کنید نیاز به یک پایگاه داده Oracle و OpenShift خواهید داشت. اگر هم بخواهید صرفا برای یک تست از آن استفاده کنید میتوانید از طریق Minishift که یک کلاستر تک-نود Openshift است این کار را انجام دهید.
Ambassador
Ambassador یک سیستم مدیریت API است که به صورت متن باز توسعه یافته و مخصوص کار با Kubernetes است. Ambassador براساس Envoy porxy ساخته شده، این پروکسی میتواند حالت انتزاعی شبکه را برای میکروسرویسها مدیریت کند.
Ambassador ویژگیهایی مانند بازنویسی URL و request routing، فیلترینگ، احراز هویت، کنترل دسترسی، نرخ محدودیتگذاری و… را در اختیار شما قرار میدهد. البته باید بگویم که بیشتر ویژگیهای این محصول در زمان اجرا و ادغام با Kubernetes در اختیار شما قرار خواهد گرفت. برای مثال ویژگی مانند نسخهبندی API به صورت محلی در اختیار شما قرار نمیگیرد.
Apiman
Apiman یک ابزار متن باز Red Hat است که توسط زبان برنامهنویسی جاوا توسعه داده شده است. البته با وجود آنکه Red Hat هنوز از این ابزار نگهداری میکند و برای آن آپدیت ارسال میکند اما به نظر میرسد که Red Hat بیشتر به 3Scale اهمیت میدهد.
میتوان گفت که Apiman تمام ویژگیهای مربوط به 3Scale را نیز ارائه میکند اما یکی از ویژگی های منحصر به فرد این ابزار تاکید بسیار زیاد آن روی سیاستهای امنیتی است. چرا که ویژگیهای مختلفی که این ابزار در اختیار شما قرار میدهد به شما اجازه داده تا موارد امنیتی مانند تعیین نقش کاربری، احرازهویت و… را پیادهسازی کنید.
DreamFactory
DreamFactory یک پلتفرم مدیریت API است که با استفاده از فریمورک لاراول در PHP نوشته شده است. این ابزار به صورت متن باز و رایگان منتشر شده که البته قابلیتهای تجاری نیز با خود به همراه دارد. برای توسعهدهندگان PHP به نظر میرسد که این ابزار میتواند انتخابی عالی باشد. البته قابلیت ادغام این ابزار با تکنولوژی نودجیاس و زبان برنامهنویسی پایتون نیز وجود دارد.
برای کار با این ابزار بهتر است نگاهی دقیق به مستندات آن در وبسایت رسمی پلتفرم بیاندازید. البته ساختار مستندات این پروژه بهینه نیست اما باز هم میتوان اطلاعات خوبی را کسب کرد.
Kong
Kong را میتوان یکی از بهترین ابزارهای مدیریت API دانست که در ابتدا با نام Mashape ارائه شد. Kong یک ابزار متن باز است اما نسخه مربوط به استفادههای سازمانی را نیز دارد که ویژگیهای مختلفی را ارائه میکند. یکی از ویژگیهای خوبی که این ابزار ارائه میکند مستندات بهینه و ساده برای هر دو نسخه از ابزار است.
Kong را میتوانید با Kubernetes ادغام کنید، همچنین با وجود قابلیت Service mesh شما قابلیت آ» را خواهید داشت که Kong را به یک ابزار دیپلوی شده اضافه نمایید. نسخه سازمانی این ابزار یک پرتال مخصوص توسعهدهندگان را ارائه میکند که باعث شده تا ایجاد API به کار بسیار سادهتری نسبت به حالتهای قبلی تبدیل شود.
Kong معمولا با دیتابیس تعامل برقرار میکند اما میتواند بدون در نظر گرفتن دیتابیس و تنها از طریق دادههای JSON/YAML نیز کار خود را انجام دهد.
KrakenD
KrakenD ابزاریست که تنها ویژگیهای پایهای برای مدیریت یک API را میدهد. اما در نهایت از آنجایی که این ابزار با GO توسعه یافته کارایی بسیار بالایی دارد و به صورت کامل از طریق یک فایل باینری ارائه میشود. شما میتوانید سورس آن را از ابتدا کامپایل کنید، همچنین میتوانید از آن به عنوان یک کتابخانه Go استفاده کنید.
شما میتوانید این ابزار را با Kubernetes ادغام کنید اما جدای از آن همانطور که گفته شد KrakebD قابلیت آن را دارد که شما از آن در کنار اپلیکیشنهای دیگری استفاده کنید.
دیدگاه و پرسش
در حال دریافت نظرات از سرور، لطفا منتظر بمانید
در حال دریافت نظرات از سرور، لطفا منتظر بمانید