چیست و چه کاربردی داردREST Framework

REST توسط دانشمند رایانه، روی فیلدینگ بنا نهاده شد. او قواعد REST را در پایاننامه دکتری خود در دانشگاه کالیفرنیادر سال ۱۳۸۰ ارائه کرد.در اوایل دهه هشتاد شمسی، روی فیلدینگ و گروهی از توسعهدهندگان تصمیم گرفتند استانداردی را به وجود بیاورند تاهر سروری بتواند با سرور دیگر مکالمه کند. وی REST را تعریف و اصول و محدودیتهایی را برای آن تعیین کرد. اینقواعد جهانی باعث شد کار تولید نرمافزار برای توسعهدهندگان آسانتر شود.API چیست؟API یا Application Programming Interface که با رابط برنامهنویسی کاربردی ترجمه میشود یک مجموعه ازقواعد و مکانیزمها است که از طریق آن اپلیکیشنها و یا کامپوننتهای مختلف یک برنامه با همدیگر ارتباط برقرار میکنند.نام خود این مکانیزم بیانگر همه چیز است. منظور از رابط چیزیست که دو شئ یا دو موجودیت مختلف را به همدیگر ربطمیدهد. اما بیایید کمی با جزئیات بیشتر از این موضوع صحبت کنیم. API میتواند دادههایی که شما برای اپلیکیشنتاننیاز دارید را از طریق یک فرمت مناسب به خروجی بفرستد و یا آن را برگشت دهد. فرمت JSON و XML از این دستفرمتها هستند.HTTP چیست؟HTTP پروتکلی است که امکان واکشی منابعی از قبیل سندهای HTML را به ما میدهد. HTTP مبنای هر نوع مبادلهداده روی وب را تشکیل میدهد و یک پروتکل کلاینت-سرور است، یعنی درخواستها از سوی گیرنده آغاز میشوند کهعموماً یک مرورگر وب است. به این ترتیب یک سند کامل با ترکیب سندهای کوچک و جزئی واکشی شده مانند متن،توضیح چیدمان، تصاویر، ویدئوها، اسکریپتها و موارد دیگر در مرورگر وب بازسازی میشود.کلاینتها و سرورها از طریق مبادله پیام با هم ارتباط میگیرند. این پیامها از سوی کلاینت ارسال میشوند که عموماً یکمرورگر وب است و درخواست ) Request ) نام دارند. از سوی دیگر پیامهایی که از سوی سرور ارسال میشوند، پاسخ( Response ) نامیده میشوند.درخواستها شامل اجزای زیر هستند:- متد HTTP که معمولاً یک فعل مانند GET ، POST یا یک اسم مانند OPTIONS یا HEAD است و عملیاتیرا تعریف میکند که کلاینت میخواهد اجرا کند. به طور معمول، کلاینت میخواهد یک منبع را )با استفاده ازارسال کند، هر چند عملیات زیاد دیگری )POST را )با استفاده از HTML واکشی کند یا مقدار یک فرم )GETنیز در موقعیتهای دیگر مورد نیاز هستند.یا مسیر مطلق پروتکل، پورت و دامنه است و بر اساس کانتکست URL - هدف درخواست که به طور معمول یکمتفاوت است. HTTP درخواست مشخص میشود. قالببندی این هدف درخواست بر اساس متدهای مختلف- هدرهای اختیاری که اطلاعات اضافی را به سرورها انتقال میدهند.HTTP. - نسخه پروتکلمشابه موارد پاسخ است POST وجود داشته باشد که برای برخی متدها مانند body - همچنین ممکن است یککه شامل منبع ارسالی هستند.پاسخها شامل اجزای زیر هستند:که استفاده شده است HTTP - نسخه پروتکلکه نشان میدهد آیا درخواست موفق بوده یا نه و دلیل آن چیست )Status Code( - کد وضعیت- یک پیام وضعیت که توضیح کوتاه غیر قابل استناد در مورد کد وضعیت استبرشمردیم HTTP مانند مواردی که در خصوص درخواست HTTP - هدرهایباشد که شامل منبع واکشی شده است body - همچنین به صورت اختیاری میتواند شامل یکچگونه کار میکند؟ RESTچهار متد زیر را داریم که عبارتند از: ، RESTful API برای بهکارگیری ازبرای دریافت یک آبجت :GETبرای ساخت و ارسال یک آبجکت :POSTرای تغییر و جایگزین کردن یک آبجکت :PUTبرای حذف یک آبجکت :DELETEدر اینجا منظور از آبجکت، یک درخواست یا کوئری به سرور است. اکثر ای پی آی های تحت وب که اطلاعاتی را به رایگانرا به توسعهدهنده میدهند تا GET در اختیار توسعهدهندگان قرار میدهند معمولاً فقط و فقط امکان استفاده از متددیتای خاصی را از سرور ارائه دهنده ای پی آی مد نظر دریافت کنند چرا که این متد اصلا تهدیدی برای سرویس ارائهکردن روی Write کند و اجازه ی Read محسوب نمیگردد زیرا توسعهدهنده فقط میتواند اصطلاحا API دهنده یدیتابیس را ندارد.سادهترین و پرکاربردترین متد استفاده شده در پروتکل اچ تی تی پی است. به طور کلی، هر وقت که شما روی GET متدلینکی در سکان آکادمی کلیک میکنید، این متد از طریق هدر پروتکل اچ تی تی پی برای سرور این سایت ارسال میشود.این متد به سرور دستور میدهد تا اطلاعات مرتبط با آدرس لینکی که روی آن کلیک شده است را برای مرورگر شما ارسالکند.REST چه کاربردی دارد؟یکی از اصلیترین کاربرد های REST متصل کردن بخش سمت سرور و بخش سمت کاربر یک سایت است. ارسال و دریافتاطلاعات بین این دو بخش یک سایت میتواند به وسیله REST Framework به راحتی انجام شود.همچنین سرویسدهنده های بزرگ و متوسط مانند Google, FaceBook, Yahoo تعداد زیادی API برای استفاده ازامکانات خود ساختهاند که به وسیله REST Framework میتوان از امکانات آنها بهره برد.گردآورنده:زهره نبی زادهدانشگاه آزاد اسلامی،کلاس اصول طراحی نرم افزار استاد:دکتر مریم حاجی اسمعیلی. دکترای علوم کامپیوتر از دانشگاه کینگستون لندن‏Dr.Maryam Hajiesmaeili‏PhD of computer science from Kingston university of London‏https://ir.linkedin.com/in/dr-maryam-hajiesmaeili-90930743