در دنیای به هم پیوسته برنامه های نرم افزاری، به اشتراک گذاری داده ها بین سیستم ها به سنگ بنای عملکرد و تنوع خدمات تبدیل شده است. یکی از عوامل کلیدی که انقلابی در این اشتراک گذاری داده ها و ارتباطات ایجاد کرده است، API های REST هستند که به عنوان یک عامل برای ادغام عمل می کنند.
این APIها راه استاندارد شده ای را برای ارتباط دو برنامه ارائه می دهند و نرم افزار شما را قادر می سازد تا به طور موثر با سرویس های مختلف دیگر تعامل داشته باشد و در نتیجه قابلیت ها و تجربه کاربری آن را افزایش دهد.
در این راهنما، توضیح خواهم داد که REST API چیست و چرا آنها بسیار مفید هستند.
قبل از شروع، باید با چیستی API ها و نحوه کار آنها آشنا باشید .
REST API چیست؟
برای درک REST، ابتدا باید برخی از اصطلاحات کلیدی را مرور کنیم:
- کلاینت شخص یا برنامه ای است که از API استفاده می کند . مشتری برای بازیابی برخی اطلاعات یا تغییر چیزی در برنامه، درخواست هایی را به API ارائه می کند. مرورگر وب شما یک سرویس گیرنده است – با APIهای وب سایت های مختلف تعامل دارد تا محتوای صفحه را از آنها دریافت کند. اطلاعات درخواستی به مرورگر شما ارسال می شود و روی صفحه نمایش شما نمایش داده می شود.
- منبع هر قطعه اطلاعاتی است که API می تواند در اختیار مشتری قرار دهد . به عنوان مثال، یک منبع در API فیس بوک می تواند یک کاربر، یک صفحه، یک عکس یا یک پست باشد. هر منبع یک نام منحصر به فرد دارد که به آن شناسه منبع می گویند.
- یک سرور توسط برنامه کاربردی استفاده می شود که درخواست های مشتری را دریافت می کند و حاوی منابعی است که مشتری می خواهد. سرور دارای یک API برای تعامل با مشتریان بدون دسترسی مستقیم به محتوای ذخیره شده در پایگاه داده خود است.
حالا برای تعریف ما. REST مجموعهای از دستورالعملها است که نرمافزار میتواند از آن برای برقراری ارتباط از طریق اینترنت استفاده کند تا ادغامها را ساده و مقیاسپذیر کند. REST API (که API “RESTful” نیز نامیده می شود) نوع خاصی از API است که از این دستورالعمل ها پیروی می کند.
REST مخفف Representational State Transfer است . این بدان معناست که وقتی یک کلاینت منبعی را با استفاده از REST API درخواست می کند، سرور وضعیت فعلی منبع را در یک نمایش استاندارد شده به عقب منتقل می کند .
کتاب الکترونیکی رایگان: نحوه استفاده از API
برای یادگیری نحوه استفاده از API فرم را پر کنید.
به عبارت دیگر، REST API با فیلد کردن درخواستها برای یک منبع و برگرداندن تمام اطلاعات مرتبط در مورد منبع، به قالبی ترجمه شده است که مشتریان بتوانند به راحتی تفسیر کنند (این قالب توسط درخواستهای دریافتکننده API تعیین میشود). کلاینت ها همچنین می توانند آیتم های روی سرور را تغییر دهند و حتی موارد جدیدی را از طریق REST API به سرور اضافه کنند.
فرض کنید می خواهم برنامه ای بسازم که با یوتیوب ادغام شود. برنامه من (مشتری) می تواند از API REST YouTube اطلاعاتی در مورد یک ویدیوی خاص (یک منبع) بخواهد. API YouTube به درخواست من با وضعیت منبع پاسخ میدهد، که شامل ویژگیهایی مانند نام ویدیو، تاریخ انتشار، تعداد بازدید، و پیوند ویدیو است، همه در قالبی بستهبندی شدهاند که برنامه من بتواند به سرعت آن را تجزیه و استفاده کند. برنامه من همچنین می تواند یک ویدیو (یعنی یک منبع جدید اضافه کند) به کانال شخصی YouTube من از طریق API ارسال کند.
اکنون که مزایای REST API ها را می دانیم، بیایید به جزئیات در مورد آنچه که REST API را از سایر انواع API ها متمایز می کند، بپردازیم.
شش قانون API های REST
برای بهره مندی کامل از عملکردی که REST ارائه می کند، API ها باید از شش الزام پیروی کنند. (خب، از نظر فنی پنج مورد نیاز است و یکی اختیاری است.) هر نیاز زمینه را برای یک API سریع و همه کاره فراهم می کند.
1. جداسازی مشتری و سرور
تحت معماری REST، کلاینت و سرور فقط می توانند به یک روش تعامل داشته باشند: کلاینت درخواستی را به سرور ارسال می کند، سپس سرور پاسخی را برای مشتری ارسال می کند. سرورها نمی توانند درخواست کنند و کلاینت ها نمی توانند پاسخ دهند – تمام تعاملات توسط مشتری آغاز می شود.
با ساده سازی ارتباط بین کلاینت ها و سرورها، API های RESTful این دو را به راحتی مستقل نگه می دارند. به این ترتیب، نرمافزار مشتری میتواند ساختهای خود را بدون نگرانی در مورد تأثیرگذاری روی سرورهای دیگر رشد دهد، و محتوای سرور را میتوان بدون تأثیر ناخواسته روی کلاینتها تغییر داد.
2. رابط یکنواخت
این دستورالعمل بیان میکند که همه درخواستها و همه پاسخها باید از یک پروتکل مشترک یا روشی برای قالببندی پیامهایشان پیروی کنند. برنامهها و سرورها به انواع زبانهای مختلف نوشته شدهاند که کار با یکدیگر بدون واسطه انجام نمیدهند. یک رابط یکنواخت یک زبان مشترک برای هر کلاینت برای برقراری ارتباط با هر REST API است.
بدون ارتباطات استاندارد، ترجمه درخواستها و پاسخها بین نرمافزارها یک آشفتگی کامل خواهد بود. اختلافات جزئی باعث می شود اطلاعات درهم ریخته و از بین بروند و برنامه ها باید هر زمان که API ها را به روز می کنند، فرآیندهای درخواست خود را به روز کنند. یک رابط یکنواخت این امکان را از بین می برد.
برای اکثر APIهای REST، این زبان رایج HTTP یا پروتکل انتقال ابرمتن است. HTTP به طور خاص برای REST ایجاد نشده است. در عوض، REST این پروتکل ارتباطی را به عنوان استاندارد برای برنامه هایی که از آن استفاده می کنند، پذیرفته است.
برای استفاده از HTTP با REST API، مشتری درخواستی را در قالب خاصی ارسال می کند که ممکن است برای شما آشنا به نظر برسد. به عنوان مثال، یک درخواست به YouTube API برای داده های ویدئویی به این صورت است:
دریافت https://www.googleapis.com/youtube/v3/channels?part=contentDetails
مانند تمام درخواستهای یک REST API، این درخواست شامل دو بخش اطلاعات است:
- GET روش HTTP است. این عملی را که مشتری می خواهد روی منبع انجام دهد را مشخص می کند. چهار درخواست اساسی HTTP وجود دارد که یک مشتری می تواند انجام دهد:
- GET: برای بازیابی یک منبع.
- POST: برای ایجاد یک منبع جدید.
- PUT: برای ویرایش یا به روز رسانی یک منبع موجود.
- DELETE: برای حذف یک منبع.
- https://… URL است. URL حاوی شناسه منبع یکسان یا URI است که منبع هدف را مشخص می کند.
در این مورد، URL نیز نقطه پایانی نامیده می شود ، زیرا مکانی است که API در واقع با مشتری تعامل دارد.
پس از دریافت و تایید درخواست، میزبان اطلاعات مربوط به منبع هدف را برمی گرداند. معمولاً اطلاعات در قالبی به نام JSON که مخفف علامت گذاری شی جاوا اسکریپت است ارسال می شود . JSON تمام محتویات یک منبع را در قالبی سبک قرار می دهد که انسان به راحتی می تواند آن را بخواند.
این صفحه در مستندات API YouTube فرمت یک منبع ویدیوی یوتیوب را با فرمت JSON نشان می دهد. آیا می توانید برخی از منابع مختلف ارائه شده را شناسایی کنید؟
3. بی تابعیت
همه تماسهای دارای REST API باید بدون حالت باشند. این بدان معنی است که هر تعاملی مستقل است و هر درخواست و پاسخی تمام اطلاعات مورد نیاز برای تکمیل تعامل را فراهم می کند. هر درخواست مشتری توسط سرور به عنوان یک درخواست کاملاً جدید تفسیر می شود – سرور چیزی در مورد درخواست های گذشته به خاطر نمی آورد.
انتقالهای بدون حالت به میزان زیادی مقدار حافظه سرور مورد نیاز را کاهش میدهد و شانس پاسخگویی موفق را بهبود میبخشد، زیرا سرور نیازی به انجام اقدامات اضافی برای بازیابی دادههای قدیمی ندارد. این تضمین میکند که این تعاملات مقیاسپذیر هستند: همانطور که نرمافزار رشد میکند و درخواستهای بیشتری میدهد، توسعهدهندگان نیازی به نگرانی در مورد استفاده از حافظه بیشتر یا بارگذاری بیش از حد سرور با درخواستها ندارند.
4. سیستم لایه ای
تاکنون درخواستهای API را به عنوان یک تعامل ساده بین مشتری و سرور توصیف کردهام، اما این کمی سادهسازی است. در واقع، معمولاً سرورهای بیشتری بین این دو نهاد وجود دارد. این سرورها یا لایهها برای افزودن امنیت، مدیریت و توزیع ترافیک یا کمک به تعدادی از عملکردهای مهم دیگر وجود دارند.
این اصل مستلزم آن است که پیامهای بین سرویس گیرنده و سرور هدف همیشه باید به همان روش قالببندی و پردازش شوند، بدون توجه به لایههایی که بین آنها قرار دارد. لایه های اضافی نباید بر تعامل مشتری و سرور تأثیر بگذارد.
هنگامی که توسعه دهندگان از این دستورالعمل پیروی می کنند، سیستم های سرور را می توان مجدداً مرتب کرد، به روز کرد، یا به شکل دیگری تغییر داد، بدون اینکه تأثیری بر درخواست-پاسخ اصلی داشته باشد.
5. Cacheable
ذخیره زمانی رخ می دهد که رسانه در دستگاه مشتری هنگام بازدید از یک وب سایت ذخیره می شود. هنگامی که یک کلاینت به آن سایت باز می گردد، داده های کش شده به جای اینکه دوباره از سرور واکشی شوند، به سرعت از حافظه محلی بارگیری می شوند. ذخیره سازی منابع و پهنای باند سرور را ذخیره می کند و زمان بارگذاری صفحه را کاهش می دهد، به همین دلیل است که اکثر وب سایت های بزرگ این کار را انجام می دهند.
API های REST با در نظر گرفتن ذخیره داده ها ایجاد می شوند. هنگامی که یک سرور پاسخ خود را برای یک کلاینت ارسال می کند، پاسخ باید نشان دهد که آیا منبع ارائه شده می تواند ذخیره شود و برای چه مدت.
6. کد درخواستی (اختیاری)
اصل REST نهایی اختیاری است. در صورت تمایل، یک API می تواند کدهای کامپیوتری را در پاسخ خود به مشتریان ارسال کند. این به مشتری این امکان را می دهد که کد را در باطن خود اجرا کند.
تا زمانی که یک API به این مجموعه قوانین پایبند باشد، RESTful در نظر گرفته می شود. با این حال، این قوانین فضای زیادی را برای توسعه دهندگان ایجاد می کند تا عملکرد API خود را سفارشی کنند. این انعطاف پذیری REST API ها را از یک روش متداول وب API، پروتکل دسترسی به اشیا ساده (SOAP) متمایز می کند.
REST API در مقابل SOAP API
REST معمولاً با SOAP مقایسه می شود، روش دیگری برای ساخت برنامه هایی که از طریق HTTP کار می کنند. تفاوت اصلی بین REST و SOAP این است که REST مجموعه ای از دستورالعمل ها است و SOAP یک پروتکل است. REST امکان ساخت API با هر روشی از جمله HTTP، URL ها و JSON را می دهد. SOAP فقط از XML برای ارسال داده استفاده می کند.
REST جایگزین سادهتر و کارآمدتری برای SOAP در نظر گرفته میشود زیرا به نوشتن کد کمتری برای تکمیل وظایف نیاز دارد و از ساختار و منطق کمتری نسبت به SOAP پیروی میکند. علاوه بر این، REST نردههایی را برای طراحی API تعیین میکند، اما انتخابهای زیادی را به توسعهدهنده ایجاد API واگذار میکند.
چرا از REST API استفاده کنیم؟
چارچوب REST توسط دانشمند کامپیوتر روی فیلدینگ در سال 2000 معرفی شد و امروزه نحوه مشاهده، تغییر و انتقال محتوای آنلاین را شکل می دهد. بسیاری از محبوب ترین شرکت های وب و ابر از REST API برای برنامه های خود استفاده می کنند، از جمله فیس بوک، یوتیوب، توییتر و گوگل.
اما چرا REST؟ اساسا، این یک سیستم عالی برای برنامه های وب است. در اینجا مزایای اصلی این نوع API آورده شده است:
- API های REST انعطاف پذیر هستند. آنها می توانند انواع مختلفی از درخواست ها را مدیریت کنند و داده ها را در قالب های مختلف ارسال کنند.
- REST API های مقیاس پذیر هستند. آنها برای ارتباط بین هر دو نرم افزار بدون در نظر گرفتن اندازه یا قابلیت طراحی شده اند. همانطور که یک برنامه وب رشد می کند و منابع بیشتری را اضافه می کند، REST API آن قادر خواهد بود به سرعت تعداد و تنوع رو به افزایش درخواست ها را مدیریت کند.
- API های REST از فناوری های وب موجود استفاده می کنند که ساخت و استفاده از آنها را نسبتاً آسان می کند. برای درخواست منبع از طریق REST API، فقط باید URL آن را ارائه دهید.
نحوه استفاده از REST API
برنامه های کاربردی وب با API های در دسترس عموم، اسنادی را در بخش «توسعه دهندگان» وب سایت های خود خواهند داشت. در اینجا دستورالعمل هایی در مورد نحوه دسترسی و استفاده از API در ارتباط با نرم افزار خود خواهید یافت. اگر API با اصول REST ساخته شده باشد، اسناد احتمالاً این را نشان خواهند داد.
بسیاری از APIها برای استفاده به یک کلید API نیاز دارند. کلید API رشته منحصر به فردی از کاراکترها است که یک ارائه دهنده API به یک توسعه دهنده می دهد تا اجازه دسترسی به API خود را بدهد. کلیدهای API اغلب با درخواست های مشتری برای شناسایی مشتری به سرور ارسال می شوند. کلید(های) API خود را خصوصی نگه دارید. اگر کلید شما به دست افراد اشتباهی بیفتد، می توان از آن برای انجام کارهای نه چندان خوب ظاهراً از طرف شما استفاده کرد.
برای آزمایش یک API عمومی، از ابزاری استفاده کنید که میتواند درخواستهای HTTP را ساختار دهد، مانند Postman . انواع روش ها و URL های مختلف HTTP را امتحان کنید و ببینید چه اتفاقی می افتد.
نمونههای REST API
میتوانید APIهای REST را در سرتاسر وب بیابید – احتمالاً امروزه بدون اینکه متوجه باشید از برخی از آنها استفاده کردهاید. در اینجا چند نمونه هستند:
توییتر
آنچه ما دوست داریم: Twitter API برنامه های شخص ثالث را قادر می سازد تا داده ها را بخوانند و بنویسند و طیف متنوعی از عملکردها را ارائه می دهند.
بهترین برای: برنامه هایی که به دنبال ادغام عملکردهای رسانه های اجتماعی هستند، به ویژه مواردی که مربوط به توییت و مدیریت پروفایل هستند.
نکته حرفه ای: این API به ویژه برای دانلود و تجزیه و تحلیل تعداد زیادی توییت در مورد موضوعات خاص موثر است.
در راهنمای ما درباره استفاده از API توییتر بیشتر بیاموزید.
اینستاگرام
آنچه ما دوست داریم: Instagram Basic Display API دسترسی به اطلاعات نمایه، عکس ها و ویدیوها را ارائه می دهد.
بهترین برای: برنامه هایی با هدف ادغام قابلیت های اشتراک گذاری عکس و ویدیو.
نکته حرفه ای: از این API برای جمع آوری اطلاعات کاربر و ادغام آن در محصول خود برای تجربه کاربری پیشرفته استفاده کنید.
Spotify
آنچه ما دوست داریم: وب API Spotify به مشتریان این امکان را می دهد که اطلاعاتی درباره هنرمندان، آهنگ ها، آلبوم ها و لیست های پخش درخواست کنند.
بهترین برای: برنامه های مرتبط با موسیقی که به دنبال ادغام ویژگی های مربوط به پخش موسیقی هستند.
نکته حرفه ای: از این API برای افزودن آهنگ ها به لیست های پخش، توقف و پخش موسیقی، به هم زدن آهنگ ها و موارد دیگر برای یک تجربه موسیقی غنی استفاده کنید.
HubSpot
آنچه ما دوست داریم: همه API های HubSpot با قراردادهای REST ساخته شده اند و برای ادغام قوی طراحی شده اند.
بهترین برای: برنامه های کاربردی تجاری که به دنبال بهبود عملکردهای بازاریابی و مدیریت مشتری خود هستند.
نکته حرفه ای: از API های HubSpot برای افزودن قابلیت های پیشرفته به نرم افزار بازاریابی خود و همگام سازی برنامه خود با سایر ابزارهای مفید استفاده کنید.
برای نمونههای بیشتر REST API که میتوانید برای کسبوکار خود استفاده کنید، فهرست APIهای رایگان و باز مورد علاقه ما را برای بازاریابان بررسی کنید .
در حالت REST نخوابید
این یک باور رایج است که API های REST به زودی استاندارد صنعتی برای ارتباطات مبتنی بر وب خواهند بود و دلیل خوبی هم دارد. آنها هر دو برنامه آنلاین را قادر می سازند تا بدون در نظر گرفتن اندازه یا قابلیت هایشان با یکدیگر تعامل داشته باشند و داده ها را به اشتراک بگذارند. از طریق REST، یک استارتآپ کوچک میتواند با یک سازمان دولتی بزرگ ارتباط برقرار کند و بالعکس.
ابزارهای نرمافزاری میتوانند با همکاری یکدیگر سیستمهای قدرتمند و نوآورانهای ایجاد کنند، چیزی که هر پلتفرم آنلاین در حال رشد باید بخواهد بخشی از آن باشد. اگر به دنبال اتصال برنامه خود به دنیای نرم افزار هستید، روی REST نخوابید.