REST API چیست ؟
در این مقاله قرار است درباره REST API صحبت کنیم . REST API چیست ؟
خوب بیایید سوالات متداول را بررسی کنیم :
ما چطور می توانیم از طریق اپلیکیشن ها ، شبکه های اجتماعی یا وب سایت ها با یکدیگر در ارتباط باشیم ؟ و از این طریق خدمات دریافت کنیم ؟
اطلاعات چطور از جایی به جای دیگر منتقل می شوند ؟
چطور دستگاه های مختلف به یکدیگر متصل می شوند ؟
این ارتباطات توسط APPLICATION PROGRAMMING INTERFACE یا همان API میسر میشود . اما واقعا REST API چیست ؟
در واقع API یک حمل کننده یا مسنجر اطلاعات از یک کاربر به یک سیستم و حمل کننده پاسخ آن از آن سیستم به کاربر است .
برای مثال تصورر کنید که در یک رستوران هستید . API در واقع گارسون این رستوران است . شما از یک منو غذای خود را انتخاب میکنید . گارسون آن را از شما میگیرد به سیستم یا همان آشپزخانه آن را اطلاع می دهد . غذای شما اماده می شود و گارسون آن را برای شما می آورد !!
در زمانی که شما قرار است یک بلیط هواپیما نیز بخرید آن را جستجو می کنید . وبسایت با خطوط هوایی ارتباط برقرار می کند . نتیجه جستجو دقیقا مطابق با درخواست شما برای روز و ساعت مورد نظر در بین دیتابیس خطوط هوایی جستجو می شود و به شما باز می گردد .
وقتی می شنوید که توسعه دهندگان درباره GOOGLE API صحبت می کنند در واقع منظور آن ها همان RESTAPI است . در واقع یک درخواست از یک کلاینت به یک یاچند سرور ارسال می شود و در نهایت پاسخ این درخواست از طریق پروتکل HTTP به کلاینت یا درخواست کننده باز می گردد .
این درخواست می تواند ثبت اطلاعات ، خواندن اطلاعات ، به روز رسانی آن یا حذف این اطلاعات از دیتابیس آن باشد . ارتباط کلاینت و سرور با زبان قابل درکی برای این دو برقرار می شود یعنی فرمت JSON . و به این عملیات ها CRUD گفته می شود .
REST آخرین استاندارد برای ایجاد درخواست های HTTP برای دسترسی و دستکاری داده ها در پایگاه داده ها است .
همه برنامه های تحت وب ، اعم از CMS یا فروشگاه آنلاین ، یا کدهای سمت سرور ، ملزم به انجام سه عملیات اساسی هستند.
POST / GET : اطلاعات را ایجاد و یا به روز می کند
READ : خواندن اطلاعات
DELETE : حذف اطلاعات
این سه عملکرد با هم ، هسته اصلی ایجاد ، خواندن ، به روزرسانی و حذف یا CRUD را تشکیل می دهند.
هر زمان که کاربر درخواستی را برای هرگونه عملکرد با یک برنامه تحت وب ایجاد می کند ، ترکیبی از CRUD برای انجام آن عملیات و بازگرداندن نتیجه استفاده می شود.
REST مخفف Representational State Transfer است. که واسطه ای بین یک منبع داده و یک برنامه در دستگاه های تلفن همراه یا دسکتاپ است .
REST مجموعه ای از روش های HTTP را فراهم می کند که به تغییر داده ها کمک می کنند.
REST API سبکی از معماری برای طراحی برنامه های شبکه ای ، کارآمد و موثر است .
که نقش مهمی در کمک به توسعه دهندگان در ساختن برنامه های کاربردی و قوی دارد .
یکی از مهمترین مزایای REST آن است که بسیار متنوع و سازگار است.
به همین دلیل است که در فریمورک های مختلف PHP قابل اجرا است .
از همین جمله می توانیم متوجه شویم که REST API چیست : نوعی معماری یا سبک است و نه یک زبان یا کدنویسی خاصی در یک زبان !!!
خوب واقعا REST API چیست ؟
REST یک مدل معماری برنامه است که معمولاً با توابع اجرا می شود.
از این توابع برای ارسال درخواست ها و دریافت پاسخ ها از طریق پروتکل انتقال متن (HTTP) استفاده می شود .
بهترین چیز در مورد REST این است که دقیقاً مختص یک زبان خاص نیست و برای آن پیاده سازی نشده است .
در عوض ، شما می توانید به راحتی آن را در هر نوع برنامه تحت وب ، که هسته اصلی آن REST است ، ادغام کنید .
این بدان معنی است که در دنیای واقعی ، برنامه ها ، سرورها و کلاینت ها از یکدیگر مستقل هستند.
از طریق REST API ، همه برنامه های تحت وب که از HTTP استفاده می کنند
می توانند داده ها را در یک قالب ساده و قابل اجرا پیوند داده و تبادل کنند.
Resourc ها اصلی ترین عناصر سازنده REST API هستند.
آن ها موجوداتی مستقل و با هویت منحصر به فرد هستند.
یک resource می تواند چندین نمایش داشته باشد که نمودهای مختلفی از یک منبع هستند.
به عنوان مثال ، تصویر می تواند یک نوع منبع یا Resourc باشد ، گرچه تصاویر در قالب های مختلف مانند GIF ، JPEG و سایر موارد در دسترس هستند .
هر منبع از طریق یک آدرس منحصر به فرد به نام Uniform Resource Identifier (URI) قابل دسترسی است .
REST API از URI برای دسترسی و تعامل با منابع استفاده می کند.
رابطه یک تصویر با URI یک رابطه یک به چند است.
یک URI ، یک منبع خاص را نشان می دهد اما یک منبع به دلیل نمایش های زیاد می تواند چندین URI داشته باشد .
مشخصات REST API چیست ؟
از آنجا که هیچ قانون سخت و سریعی در اجرای REST API وجود ندارد ، توسعه دهندگان کار با آن را آسان تر می دانند .
با این حال ، برای کدنویسی به عنوان REST ، یک API باید دارای سه ویژگی مهم باشد :
- معماری مشتری-سرور (Client-Server ) :
در REST API ، سرویس دهنده ها و سرورها از یکدیگر مستقل هستند.
آنها می توانند به راحتی و بدون ایجاد مشکل با زبان های دیگر جایگزین و دوباره اجرا شوند.
- بی تابعیتی :
بی تابعیت بودن به معنای آن است که سرورها هیچ داده ای در رابطه با تعاملات با مشتری را ذخیره نمی کنند.
این موضوع فرآیند طراحی و اجرای برنامه را بسیار آسان می کند . زیرا سمت کلاینت تمام اطلاعات لازم را برای هر تعامل فراهم می کند .
علاوه بر این بار روی سرورها به نسبت کاهش می یابد.
برای REST API ، عدم تابعیت اصلی ترین نیاز طراحی است ، چون HTTP خود یک پروتکل بدون تابعیت است.
- قابلیت ذخیره سازی :
سمت کلاینت می تواند پاسخ های برگشتی توسط سرورها را ذخیره یا در حافظه پنهان ذخیره کند.
برای کاربران نهایی ، این موضوع به طور چشمگیری سرعت دریافت پاسخ از برنامه را افزایش می دهد .
همه REST API ها قابل cache هستند زیرا پروتکل HTTP این قابلیت را ارائه می دهد.
مزایای REST API چیست ؟
REST چندین مزیت مهم را به توسعه دهندگان و کاربران برنامه های تحت وب ارائه می دهد.
آزادی اجرا بزرگترین مزیت REST API است.
توسعه دهندگان می توانند پیاده سازی هر دو سمت سرور و کلاینت را تحت هر زبان یا سیستم عاملی کنترل کنند .
این امکان فراهم می شود زیرا لازم است که همه پاسخ های دریافتی تحت پروکلی مشترک مانند JavaScript Object Notation (JSON) یا XML باشند .
جدایی بین کلاینت ها و سرورها تضمین می کند که همه REST API ها قابل حمل و متنوع باشند .
توسعه دهندگان در هر دو طرف می توانند بدون هیچ مشکلی برای برنامه ، قطعات را آزادانه تغییر دهند و جایگزین کنند.
تمام REST API ها و برنامه های وب با استفاده از این APIها مقیاس پذیر و قابل اعتماد هستند.
شما ، به عنوان یک توسعه دهنده ، می توانید کد را برای سمت سرور یا سمت کلاینت بنویسید .
به همین علت است که ما می توانیم از عملیات CRUD در PHP برای ارتباط با پایگاه داده با اندروید استفاده کنیم .
چون ایجاد درخواست و دریافت پاسخ در این بین ، به صورت JSON خواهد بود .
مادامی که ما از این زبان مشترک استفاده می کنیم سمت سرور و سمت کلاینت هر زبان برنامه نویسی با هر قاعده ای می تواند داشته باشد .
یک طرف جاوا و اندروید و یک طرف PHP به صورت خام ، یا با شی گرایی یا با فریمورک های مختلف آن مثل Symfony ، Laravel یا Slim .
همان طور که شرح داده شد در واقع REST به معنی انتقال داده است و مادامی که ما با کد نویسی در حال انتقال داده از سرور به کلاینت یا از کلاینت به سرور هستیم از این سبک استفاده کرده ایم !
هیچ دیدگاهی نوشته نشده است.