برنامه نویسی

APIهای بدون سرور – انجمن DEV

اگر تازه وارد دنیای توسعه برنامه هستید، API مخفف Application Programming Interface است، رابطی که نوعی «سرویس» را برای برنامه های کاربردی ارائه می دهد. برای مثال، Google Maps یک API عمومی دارد که من یا شما می‌توانیم از آن استفاده کنیم، اگر در حال ساختن برنامه‌ای برای تعیین مکان همه رستوران‌های شهرمان هستیم. آنها این و بسیاری از نقاط داده دیگر را از طریق نقاط پایانی مستند نشان می دهند، و ما می توانیم از چیزهایی مانند کلیدهای API برای دسترسی به این داده ها استفاده کنیم. اگر یک توسعه دهنده هستید، به احتمال زیاد در مقطعی از حرفه خود، اگر نه چندین، یک API بسازید و قطعاً با آنها کار خواهید کرد. به عنوان یک بلوک اصلی در توسعه برنامه، AWS چند راه حل API را ارائه می دهد.

دروازه API آمازون
فرض کنید یک وب‌سایت مسافرتی دارید – برنامه frontend خود دارید، و برنامه باطن خود را دارید که دارای برخی عملکردهای لامبدا برای مدیریت کاربرانی است که رزروهای تعطیلات خود را ایجاد، به‌روزرسانی و حذف می‌کنند، که با یک جدول DynamoDB تعامل دارد که همه این اطلاعات را ذخیره می‌کند. برای شما. با این حال، برنامه frontend شما باید بتواند با این توابع لامبدا ارتباط برقرار کرده و اطلاعات را به عقب و جلو منتقل کند. این جایی است که یک دروازه API وارد می شود. یک دروازه API معمولا یک REST API است (Websocket نیز یک گزینه است) که نقاط پایانی مختلفی را برای برنامه شما مدیریت می کند. به عنوان مثال، هنگامی که یک کاربر رزروی را ایجاد می کند، برنامه frontend ممکن است به یک نقطه پایانی POST در API شما به نام “createReservation” برخورد کند و شما می توانید API خود را طوری پیکربندی کنید که مستقیماً با عملکرد لامبدا “createReservation” خود ادغام شود، جایی که ممکن است کاری مانند ایجاد انجام دهید. یک شناسه رزرو جدید و ذخیره آن در جدول DynamoDB.

Google Maps API.  تصویر از طریق Unsplash.

این فقط یک مثال نسبتاً ساده است. ممکن است از قبل بتوانید ببینید که چگونه این موضوع می تواند خیلی سریع بسیار پیچیده شود. این به شما کمک می کند که API Gateway گزینه های زیادی برای پیکربندی داشته باشد که به شما امکان می دهد سطح نظارت و ثبت برنامه خود را تنظیم کنید، همزمانی و throttling را در تماس های API خود تنظیم کنید، مستقیماً با چندین سرویس یکپارچه شوید و البته سطح مجوز و دسترسی خود را. با API Gateway، برای تماس هایی که دریافت می کنید و داده هایی که ارسال می کنید، هزینه پرداخت می کنید. هنگامی که یک REST API را تعریف می کنید، دروازه API در واقع از سه منبع مختلف تشکیل شده است – خود API، یک منبع Stage برای هر محیط که می تواند به کنترل نسخه و سایر گزینه های پیکربندی در هر محیط کمک کند، و یک منبع Deployment، که اساسا یک عکس فوری از API شما برای استفاده از Stage. علاوه بر این منابع، شما همچنین باید هر یک از نقاط پایانی خود را به عنوان یک مسیر جدید در دروازه API به صورت جداگانه تعریف کنید. API Gateway ابزار بسیار قدرتمند و مفیدی است که در اختیار شماست، اما می تواند به سرعت و به آسانی رشد کند و نسبتاً پیچیده شود، بنابراین مطمئن شوید که برنامه خود را برای پاسخگویی به نیازهای خاص خود طراحی می کنید.

AWS AppSync
من این بخش را برای همه شما کمی کوتاهتر نگه می دارم، زیرا AppSync چیزی نیست که من شخصاً از آن استفاده کرده باشم، اما چیزهای خوبی در مورد آن شنیده ام. AppSync یکی دیگر از گزینه های API است که AWS به طور خاص برای برنامه هایی که می خواهند از GraphQL یا مدل Publish/Subscribe استفاده کنند، در دسترس قرار داده است. مدل GraphQL ممکن است برای توسعه دهندگان فرانت اند که نیاز به پرس و جو از چندین منبع داده از یک نقطه پایانی API دارند، مانند پایگاه های داده یا میکروسرویس ها، جالب باشد. مدل Pub/Sub که من با آن در جنبه سخت افزاری اینترنت اشیا-ارتباطات-با-نرم افزار آشنا هستم، با این حال برای توسعه دهندگان فرانت اند که به دنبال استفاده از به روز رسانی های بلادرنگ با اتصالات WebSocket بدون سرور هستند نیز قدرتمند است. با AppSync، شما همچنین دارای حافظه پنهان، همگام سازی داده های آفلاین، و به روز رسانی در زمان واقعی هستید. می توانید بیشتر بیاموزید و اسناد توسعه دهنده را در وب سایت AWS بررسی کنید.

تصویر نمودار، مانند GraphQL.  تصویر از طریق Unsplash.

مانند همه این مقالات کوتاه و روزانه، موارد بسیار بیشتری وجود دارد که می‌توانم در اینجا به آن‌ها بپردازم، اما هدف من این هفته این است که کمی از آنچه فضای بدون سرور ارائه می‌کند به شما بچشم و شما را به عنوان یک تازه کار بدون سرور من به شدت شما را تشویق می کنم که حتی بیشتر در مورد طراحی موثر API مطالعه کنید، و حتی با یک آموزش، کارگاه، یا حتی پروژه خود شروع کنید (با خیال راحت وب سایت سفر را امتحان کنید و به من اطلاع دهید که چگونه پیش می رود!) باور کنید. چه نه، هنوز چیزهای بیشتری برای کاوش در فضای بدون سرور وجود دارد، بنابراین در پست بعدی من با برخی از خدمات یکپارچه سازی و ارکستراسیون واقعا مفید ادامه خواهیم داد.*

*این بخشی از مجموعه‌ای است که در اینجا پوشش داده می‌شود، اما من همچنین شما را تشویق می‌کنم تا با بقیه سریال‌ها در 90DaysOfDevOps همراه باشید.

نوشته های مشابه

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

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا