بررسی ساختار REST API

بررسی ساختار REST API
هرچند REST API موضوع بسیار پیچیده ای است ، ما در این پست به توضیح مختصر درباره ی REST API و نحوه استفاده از آن، می پردازیم.
یک REST API، مجموعه ای از توابع را تعریف می کند که توسعه دهندگان می توانند درخواست ها (requests) را انجام دهند و پاسخ ها (response) را از طریق پروتکل های HTTP از جمله GET  و POST، دریافت کنند.
آموزش برنامه نویسی موبایل
آموزش برنامه نویسی اندروید به همراه پشتیبانی رایگان برای رفع خطاهای شما
خودتان را اینجا معرفی کنید

از آنجائیکه 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 در دنیای واقعی

معنای اصطلاح "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

فرناز عبداللهی هستم دانشجوی مهندسی فناوری اطلاعات، با شروع از html , css وارد حوزه ی طراحی وب شده ام و در حال حاضر در حال یادگیری جاوا اسکریپت می باشم.

نظرات و سوالات کاربران

ارسال پاسخ محمود
محمود
شنبه ۱۴ مرداد ۱۳۹۶ ۱۶:۰۷
هرچند REST API موضوع بسیار پیچیده ای است!!!

نه واقعا پیچیده است!!!

نویسنده این مطلب احتمالا با REST کار نکردن که اینجوری بهش نگاه کردن