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