بررسی ساختار REST API
یک REST API، مجموعه ای از توابع را تعریف می کند که توسعه دهندگان می توانند درخواست ها (requests) را انجام دهند و پاسخ ها (response) را از طریق پروتکل های HTTP از جمله GET و POST، دریافت کنند.
دارالترجمه رسمی پارسیس شامل خدمات ترجمه رسمی و تخصصی در بیش از 60 زبان زنده دنیا
بهترین افزونه های سئو وردپرس به صورت کاملا فارسی
فرم ساز آسان اولین فرم ساز کاملا فارسی وردپرس
خرید انواع ورق گالوانیزه رنگی با بهترین قیمت
بهترین کارگاه رویه کوبی و تعمیر مبل راحتی و استیل در تهران با قیمت و کیفیت عالی
از آنجائیکه REST API از HTTP استفاده می کند، تقریبا توسط تمامی زبان های برنامه نویسی قابل استفاده بوده و هم چنین به آسانی قابل تست است. یکی از ملزومات REST API، مستقل بودن سرویس گیرنده (client) و سرور از یکدیگر می باشد که اجازه می دهد هر یک به هر زبانی قابل کد گذاری باشند.
شبکه جهانی وب (www) نمونه ای از یک سیستم توزیع شده است که از معماری پروتکل REST برای ارائه یک رابط مبتنی بر ابررسانه (hypermedia) برای وب سایت ها، استفاده می کند، از ابررسانه به جای hypertext برای جلوگیری از سردرگمی استفاده می شود چرا که REST API نه تنها از HTML بلکه از فرمت های دیگری نیز پشتیبانی می کند.
نمونه واقعی
توئیتر REST API ای فراهم می کند که شما می توانید آخرین توئیت ها را، با استفاده از کوئری جست و جو یا برچسب هش (#) درخواست کنید و REST API نتایج درخواست را در قالب JSON برمی گرداند. در زیر نمونه ای از درخواست HTTP به API توئیتر را برای دریافت سه توئیت آخر که با عبارت ‘jQuery’ مطابقت دارند، مشاهده می کنید:
http://search.twitter.com/search.json?q=jQuery&result_type=recent&rpp=3
علاوه بر این REST API لازم است مشخص کند چه امکانات و اطلاعاتی را فراهم می کند و چگونه میتوان از آن استفاده کرد، که میتوان به جزئیاتی از جمله پارامتر های پرس و جو ، فرمت پاسخ ، محدودیت درخواست ، کلید عمومی API ، متد ها (GET/POST/PUT/DELETE)، پشتیبانی از زبان ، پشتیبانی از HTTPS و نمایندگی منابع، اشاره کرد.
اطلاعاتی که برای جستجوی REST API توئیتر ارائه شده است در تصویر زیر مشاهده می کنید:
مشاهده دمو
REST چیست؟
REST کوتاه شده ی عبارت Representational State Transfer می باشد که اساسا به یک سبک معماری وب اشاره دارد که دارای ویژگی های اساسی بسیاری است و رفتار مشتریان و سرور ها را مدیریت می کند.
چه چیزی می تواند از REST API استفاده کند؟
REST API این امکان را فراهم می کند که بتوانید با Parse (سرور متن بازAPI )، از طریق هرچیزی که بتواند یک درخواست HTTP ارسال کند، ارتباط برقرار کنید.
برای مشاهده نمونه هایی میتوانید به این لینک مراجعه کنید.
REST API در دنیای واقعی
- The Twitter REST API
- Facebook REST API
- Google Translate REST API
- Flickr REST API
- Dropbox REST API
- Ebay Developer REST API
- BING Maps REST API
- BING Traffic Incidents API
- Magento REST API
معنای اصطلاح "RESTful API" چیست؟
به طور کلی اصطلاح RESTful، مطابقت و سازگاری با ویژگی ها و محدودیت های REST را شامل می شود.در صورتی که یک API ویژگی های زیر را داشته باشد، می تواند RESTful در نظر گرفته شود ( لیست زیر کامل نیست اما شامل موارد اصلی می باشد):
1- Client-server: کاربر (client)، فرانت-اند و سرور، بک-اند را کنترل می کنند و هر دو می توانند مستقل از یکدیگر، جایگزین شوند.
2- Stateless (بدون وضعیت): داده ها و اطلاعات کاربر، بین درخواست ها، در سرور ذخیره نمی شوند و وضعیت هر جلسه (session) در سمت کاربر ذخیره می شود.
3- Cacheable: کاربر می تواند برای بهتر کردن کارائی، پاسخ را در cache ذخیره کند (مانند ذخیره کردن عناصر استاتیک یک صفحه وب توسط مرورگر)
پیروی از این محدودیت ها و در نتیجه سازگاری با سبک معماریREST ، هر نوع سیستم ابررسانه ای توزیع شده را قادر می سازد تا ویژگی های ظاهری مطلوب مانند عملکرد، مقیاس پذیری، سادگی، تغییر پذیری، قابل مشاهده بودن ، قابل حمل بودن و قابلیت اطمینان را داشته باشد. یکی از ترند های رایج، استفاده از URL های مشخصی برای API های RESTful می باشد.
مثال Dropbox API برای عملیات فایل
معماری کلاینت-سرور RESTful
برای مثال HTTP دارای واژه نامه بسیار غنی از نظر افعال (method ها)، url ها، انواع رسانه های اینترنتی، کد های درخواست و پاسخ و غیره است. REST از این ویژگی های پروتکل HTTP استفاده می کند و بنابرین اجازه می دهد لایه پروکسی و کامپوننت های دروازه (gateway) موجود، توابع اضافی از جمله ذخیره سازی HTTP و توابع امنیتی، در شبکه اجرا کنند.(RESTful Web Services (API
سرویس های وب RESTful (که RESTful web API نیز نامیده می شوند)، سرویس هایی هستند که با استفاده از HTTP و با رعایت اصول REST پیاده سازی می شوند و مجموعه ای از منابع، با چهار ویژگی تعریف شده، هستند:- URL پایه برای سرویس های وب، مانند http://example.com/resources
- نوع رسانه های اینترنتی از داده های پشتیبانی شده توسط سرویس وب، که اغلب JSON، XML یا YAML است اما می تواند هر نوع رسانه معتبر اینترنتی که استاندارد hypertext است، باشد.
- مجموعه عملیات پشتیبانی شده توسط سرویس وب با استفاده از متد های HTTP (مانند GET، POST، PUT و DELETE)
- API باید مبتنی بر hypertext باشد.
فرمت های محبوب درخواست request) REST API)
- REST
- XML-RPC
SOAP فرمت های محبوب پاسخ response) REST API)
برای توسعه دهندگان jQuery ، فرمت JSON محبوب ترین فرمت پاسخ می باشد.- REST
- XML-RPC
- SOAP
- JSON
- PHP
آیا برای دسترسی به REST API، به یک کلید API نیاز داریم؟
اکثر API ها دارای محدودیت در تعداد درخواست ها هستند و ممکن است از شما بخواهند که یک کلید API ارائه دهید. API های حساس به داده ها، نیاز به تائید هویت شما خواهند داشت و محبوب ترین متد Open Authentication است که با عنوان oAuth نیز شناخته می شود.برای مثال Google Translate ، در یک درخواست با متد GET به کلید API شما نیاز دارد:
https://www.googleapis.com/language/translate/v2?key=INSERT-YOUR-KEY&source=en&target=de&q=Hello%20world
REST API یا API ؟
با مطالعه و بررسی داکیومنت ها و مشخص کردن این که آیا API، معیار های لازم را برای RESTful بودن، دارا می باشد یا نه، میتوان تعیین کرد که آیا API ، RESTful می باشد یا خیر.یکی از مثال هایی که مطمئنا RESTful شمرده می شود Atom API می باشد:
http://bitworking.org/projects/atom/rfc5023.html
منبع: sitepoint
نظرات و سوالات کاربران
نه واقعا پیچیده است!!!
نویسنده این مطلب احتمالا با REST کار نکردن که اینجوری بهش نگاه کردن