از پر تکرارترین کلمات در علم برنامهنویسی API است. این سرور ریموت یک واسط برنامهنویسی است که بین کتابخانه و سیستم عامل و برنامههای تحت وب میباشد که کاربر از آنها در خواست سرویس میکند. در این دوره قصد داریم کمی بیشتر با این رابط آشنا شویم. با ما همراه باشید.
Api چیست؟
Api برگرفته از «رابط برنامهنویسی اپلیکیشن» (Application Programming Interface) میباشد. شاید اگر به تازگی وارد حوزه برنامهنویسی شده باشید با این واژه آشنایی نداشته باشید اما افرادی که به صورت حرفهای در بازار کار برنامه نویسی مشغول به کار هستند این ابزار به یکی از پرکاربردترین ابزارهای روزانه برای آنها تبدیل شده است. در مقالات قبلی در ارتباط با یو آی صحبت کردیم و اشاره کردیم که ui نوعی رابطه کاربری انسانی است به این معنا که یک شخص با نرمافزارهای کامپیوتری تعامل دارد. اینک میخواهیم اشاره کنیم که Api شبیه به ui نوعی رابط کاربری است با این تفاوت که به جای انسان سیستمهای کامپیوتری با نرمافزارها در تعامل هستند. به نوعی Api یک سرور ریموت است. سرور ریموت بخشی از رایانه شماست که به منظور پردازش دستورات دریافتی بهینهسازی شده است. Api از مجموعه کدهای طراحی شده که تعامل بین نرمافزار و سیستم های متفاوت را امکانپذیر میکند.
کاربردهای Api:
- توسعهدهندگان به کمک این ابزار با میزان کد کمتر پلتفرمی ایجاد میکنند که به کمک آن نرمافزار طراحی شده با سرعت بیشتری اجرا گردد.
- این سرور ریموت کمک میکند تا بین برنامهها سازگاری بیشتری ایجاد شود. به گونهای که اگر بخواهید قسمتی را به صفحه وب سایت یا نرمافزاری اضافه کنید نیازی به طراحی دوباره نیست. صرفاً به کمک ای پی آی میتوانید به راحتی تغییرات را اعمال کنید.
- به کمک Apiها امنیت بیشتری برای دستگاهها ایجاد شد. چرا که دسترسی به منابع را کاملا کنترل میکنند.
- به منظور تعامل بیشتر بین اشیا، Apiها کمک میکنند تا موقعیت هر کدام از آنها به خوبی مشخص گردد. جالب است که بدانید گوگل مپ به کمک این سرور ریموت ارائه شده است.
- این سرور ریموت در تجارت بسیار با ارزش است. چرا که میتواند بین شما و همکارانتان به راحتی ارتباط برقرار کند.
- به کمک دادهها میتواند کسب و کارهایی با درآمد عالی را گسترش دهند.
Rest چیست و چه ارتباطی با Api دارد؟
این واژه بر گرفته از representational state transfer در سال ۲۰۰۵ به عنوان راهی برای انتقال داده از طریق شبکه شناخته شد. به نوعی یک مدل معماری برای طراحی برنامههای کاربردی تحت وب میباشد. به کمک آن میتوان ترکیبی از چندین مدل معماری بر پایهی شبکه استفاده کرد. حال منظور از RESTful API استفاده از معماریهای خاص به هدف برقراری ارتباط با سرورهای دیگر میباشد.
چرا REST API ارائه شد؟
استخراج اطلاعات روندی بسیار پیچیده و طولانی است که صرفاً از طریق API امکانپذیر نیست و به ابزارها و متدهای دیگری نیاز دارد. REST API یک مجموعهای از اطلاعات درخواست کاربر را میسنجد مقادیر متناسبی از شی را برای کلاینت ارسال میکند.
چگونه سیستم REST به RESTful تبدیل میشود؟
اگر سیستم REST از شش مزیت برخوردار باشد به عنوان RESTful شناخته میشود:
1. uniform interface
(دارای رابط یا اینترفیس یکنواخت) برای ارائه عکس العمل میبایست با استفاده از HTTP اطلاعات واضح و شفافی در اختیار کلاینت قرار دهیم. همچنین باید برای استفاده از روشهای متفاوت از یک منبع بهره ببریم.
2. client-server
(به معنای سرویسدهنده) اینجا کلاینت در واقع کاربر یا نرمافزاری است که از API بهره میبرد. در معماری API کلاینت جایگاهی در فرانت اند و سرور جایگاهی در بک اند دارد. (در مقالات قبلی به معرفی فرانت اند و بک اند پرداختیم.) این نوع معماری با کمترین میزان وابستگی بین کلاینت و سرور کمک میکند تا توسعهدهندگان به راحتی اپلیکیشنها را توسعه دهند.
3. code on demand
(قابلیت کد داشته باشد که ویژگی اختیاری است.)
4. stateless
(بدون حالت باشد) هیچ دادهای نباید در زمان پردازش انتقال درخواست روی سرور ذخیره شود. بدین منظور به جای ذخیره کردن وضعیت کلاینت در سمت سرور، دادهها سمت خود کلاین ذخیره میشوند و در صورت درخواستی برای سرور ارسال می گردد. یکی از بهترین مزیتهای این ویژگی این است که کلاینت به هیچ عنوان ضمن تغییرات صورت گرفته بر سرور با مشکل مواجه نمیگردد.
5. layered system
(از سیستم لایهبندی شده برخوردار باشد.) در میان کلاینت و سروری که پاسخ یا عکسالعملی ارائه میدهد ممکن است سرور های متفاوتی قرار بگیرد. یک سرور به عنوان لایه امنیتی، یک سرور به عنوان لایه کش و موارد دیگر. در چنین معماری کلاینت از وجود سرورهای واسطه اطلاعی ندارد. در ضمن هیچکدام از این لایهها نباید به درخواست کلاینت یا عکسالعمل ارائه شده تغییری ایجاد کنند.
6. cacheable
(از کش یا حافظه پنهان برخوردار باشد.) این قابلیت کمک میکند تا کلاینت عکس العمل دریافتی را به صورت کش ذخیره کند. به نوعی می توان گفت REST یک معماری است که به توسعهدهنده کمک میکند تا به روش خاصی یک وب سرور را طراحی کند. اما
RESTful API یک سرویس است که میتواند این معماری را پیاده سازی کند. پسوند «ful» به معنی «داشتن قابلیت» REST یا تطابق داشتن با این سبک معماری است. به عبارتی دیگر این وبسرویسها یا APIها از سبک و شیوه معماری REST استفاده میکنند.
اهداف استفاده از معماری Rest:
- اصلیترین هدف استفاده از معماری REST این است که برای برقراری بین ماشینها به جای استفاده از متدهای پیچیدهای مانند CORBA، RPC یا SOAP از HTTP ساده بهره گرفت.
- به جای هدر پروتکل htpp در url بتوان کوئری یا درخواست اعمال کرد.
- به کمک معماری rest میتوان url ها را واسطه قرار داد و به راحتی مسیرهای مد نظر را مشخص کرد.
- به کمک این ابزار میتوان از کدهای htpp بهره گرفت.
- بهتر است به جای اینکه از REST به عنوان یک تکنولوژی یاد کرد آن را به عنوان معماری در نظر داشته باشیم که در علم برنامهنویسی قابلیت اطمینان، کارایی قابلیت حمل، سادگی، نظارت و امکان مشاهده و انعطافپذیری را افزایش میدهد.
4 روش بهکارگیری RESTful API
- GET: به منظور دریافت یک آبجت
- POST: برای ساخت و ارسال یک آبجکت
- PUT: برای تغییر و جایگزین کردن یک آبجکت
- DELETE: برای حذف یک آبجکت
منظور از ابجکت همان درخواست یا کوئری به سرور میباشد.
به طور کلی، به همه این متُدها (عملیات) اصطلاحاً «CRUD» گفته میشود که سرنامی برای هر یک از کلمات «Update» ،«Reard» ،«Create» و «Delete» میباشد که در بانک اطلاعاتی با آنها سروکار داریم.
GET یکی از سادهترین و برای رایجترین روشهای استفاده از hptt است که صرفاً اجازه میدهد کاربر اطلاعات را بخواند و اجازه نوشتن و تغییر آنها را ندارد. بنابراین هیچ گونه خطری سرویس ارائه دهنده را تهدید نمیکند. این متد صرفا یک سری اطلاعات را (معمولا به صورت رایگان) در اختیار کاربر قرار میدهد. در دو روش put و delete قبل از اجرا درخواست توسعهدهنده میبایست از طریق دریافت شناسه اختصاصی یا ثبت نام کردن در سرویس مد نظر اطلاعات او تایید شود. این دو روش معمولا در اپلیکیشنهای تحت وب به کمک توسعهدهندگان قابل استفاده است.
در پایان
در این محتوا سعی کردیم شما را با این سرور ریمت آشنا کنیم. لازم است بدانید که با وجود کاربرد زیاد API ها خیلی از افراد روش درست و اصولی کاربرد آنها را نمیدانند. در آموزش جامع ایجاد و استفاده از Restful Api در Asp.Net Core و آموزش معماری پیار ( Onion Architecture ) از تیم مدرسان برنامه نویسی کدیاد به تسلط کافی و لازم بر سرور ریموت خواهید رسید.
نظرات دانشجویان
نظرات دانشجویان
استاد اصلاني عزيز سلام. سپاسگزارم كه اين آموزش ارزشمند را دوباره در سايت قرار داديد. ارادتمند
khalil azmoon
سلام خدمت مهندس اصلانی عزیز ممنون بابات آموزش عالی . برخی کلاس هایی که شما از اون استفاده می کنین و از سیستم خودتون داخل پروزه اضافه می کنین مانند SlugUtitlity.cs ما به اون ها دسترتسی ندارم ممنون میشوم اون کلاس های آماده ای که استفاده می کنین هم بزارین
mohammadDev AMN
سلام وقت بخیر استاد ممنون از دوره خوبتون،هرچه قدر که میرم جلوتر به ارزش دوره بیشتر پی میبرم خسته نباشید واقعا. یه داکیومنت کامله برای بلاگ و ای پی آی نویسی
اسداله حسام
سلام دوست عزیز. من چندین اموزش از سایتهای دیگه دیده بودم. ولی انصافا جا داره تبریک بگم بهتون چون هیچ اموزشی اینقدر ساده و روان گفته نشده