پیش از پرداختن به رست فول ای پی آی، بد نیست بگوییم API یا Application Programming Interface یک نوع رابط برنامه نویسی است که گروهی از دستورالعملها و مکانیزمها را به هم ربط میدهد. این ارتباط به کمک برنامهها یا کامپوننتهای مختلف یک اپلیکیشن با هم صورت میگیرد. رابط در اینجا به معنی مفهومی است که دو شی ء یا دو موضوع مختلف را به هم ارتباط میدهد. اجازه بدهید برای تفهیم بیشتر از یک مثال استفاده کنیم. همانطور که می دانید، گیت هاب یک نوع سرویس ای پی آی ویژهای است که به وسیله آن میتوان به مجموعهای از دادهها دسترسی داشت. این دادهها میتوانند، اطلاعات کاربران و حتی مخازن آنها باشند.
شما با کمک ای پی آی میتوانید این اطلاعات را دریافت کرده و پس از تغییری که در آنها اعمال میکنید، از آنها در پروژه خود استفاده کنید. مفهوم رست نیز کوتاه شده عبارت representational state transfer میباشد و به معنی نمایش دادهها است. این اطلاعات صرفا جهت کاربران است و با کمک شیوههایی که خوانایی خوبی داشته باشد، قرائت میشود. خوب است بدانید، رست یک دستورالعمل یا استاندارد نیست بلکه تنها یک مسیر یا راهحل است که برای نوشتن ای پی آیها تدوین شده است.
همچنین شما میتوانید در صورت نیاز مقاله رابط برنامه نویسی کاربردی (API) چیست؟ را نیز، مطالعه کنید.
حالا که با مفهوم اولیه رست فول ای پی آی آشنا شدیم، در ادامه به معماری و ساز و کار رست فول API میپردازیم. همانطور که گفته شد، رست فول ای پی آی در شمار یکی از مهمترین معماریهایی است که در زمینه گسترش و توسعه وب مشارکت دارد. RESTful یک نوع معماری طراحی API به شمار میرود و در حال حاضر مورد استفاده بسیاری از شرکتهای نرم افزاری است. با کمک این نوع معماری، دولوپرها میتوانند با خدماتی که ارائه میکنند با هم در ارتباط باشند. خوب است بدانید، این مدل معماری گسترش یافته وب سایت، اولین بار در سال دوهزار میلادی معرفی شد. روی فیلدینگ Roy Fielding نخستین فردی بود که این موضوع را در رساله دکترای خود منعکس کرد. او که از دانشمندان علوم رایانه میباشد، در سال هزار و نهصد و نود و نه میلادی به عنوان جوانترین مخترع لقب گرفت. همچنین روی فیلدینگ موسس وب سرور Apache نیز است.
به بیانی دیگر RESTful API مجموعهای از راهنما یا گایدلاین است که با تبعیت از آنها میتوان دست به ساخت وب سرویس زد. وب سرویس ها ضمن اینکه سرعت خوبی دارند، قابل اعتماد نیز بوده و میتوانند توسعهپذیر باشند. در واقع رست فول ها موضوعی نیستند که در زبانهای برنامهنویسی یا فریم ورکها گنجانده شوند؛ چراکه آنها به نوعی، قوانین توسعه یافته نرمافزاری هستند و اگر در گسترش ای پی آی از آنها پیروی کنیم، خدماتی که ارائه خواهیم داد تحت عنوان رست فول شناخته خواهند شد.
در معماری RESTful API حروف RE بخشی از اصطلاح Representational است. این کلمه به موضوع فرمت دیتای بازگشتی اشاره دارد که از سمت سرور قابل ملاحظه است. این فرمت قادر است HMTL، XMLT و جیسون یا هر فرمت دیگر را نیز شامل شود. اجازه بدهید برای درک بهتر مسئله یک مثال بزنیم. همانطور که آب میتواند هم در لیوان ریخته شود و هم در پارچ و هم به صورت قالب یخ درآید، ریسورس هم میتواند مانند آب، حالات و وضعیتهای مختلفی داشته باشد. ریسورس هم میتواند در زمینه سرور به کار رود و هم قادر است در فرمتهای متفاوتی مانند جیسون HMTL، XMLT و… ارائه گردد.
در معماری رست فول ای پی آی واژگان State Transfer به این معنا هستند که به جای سیو کردن حالت کلاینت یا مشتری در سمت سرور، همه اطلاعات در سمت خود مشتری سیو شوند. در چنین حالتی هر درخواستی میتواند برای سرور نیز فرستاده شود. از همین رو، به این نوع معماری Stateless میگویند. همین موضوع باعث میشود تا ما قادر باشیم سیستم های توزیع شده را گسترش داده و آن را بین میلیونها کاربر و در یک زمان واحد ارائه دهیم. مشتریان با این شیوه قادر خواهند بود با سرور ارتباط داشته و اطلاعاتی را که لازم دارند درخواست کنند.
رست فول ای پی آی دارای چهار ویژگی است که عبارت هستند از، بی تابعیت و مقیاس پذیری، پشتیبانی از نرم افزارهای JSON و XML، قابلیت انعکاس تغییرات در مستندات Documentation و صادرکننده پیغام خطا. در ادامه هر یک از این چهار ویژگی به صورت جداگانه توضیح داده میشوند.
در تراکنش رست فول ای پی آی دادهها سیو و ذخیره نمیشوند؛ چراکه هر تحلیل بی تابعیت بوده و احتیاجی به سرورهای پر قدرت جهت ذخیره سازی دادههای کلاینت نیست. همین موضوع این معماری را برای هر تقاضایی، مقیاس پذیر نموده است.
یکی دیگر از ویژگی های رست ای پی آی برآورده کردن انتظارات افرادی است که از زبان جیسون استفاده میکنند. رست فول ای پی آی به خوبی قادر است از این نرم افزار پشتیبانی کند. حتی مایکروسافت و گوگل نیز از این نوع معماری بهره میگیرند.
رست ای پی آی قابلیت انعکاس تغییرات در مستندات Documentation را داراست. بدین معنی که هر تغییری که در معماری رست فول ای پی آی صورت میگیرد، میبایست در مستندات آن انعکاس داده شود. این موضوع میتواند باعث شود تا هر توسعه دهندهای که از این برنامه استفاده میکند، دقیقا بداند در مورد آن چه انتظاری دارد. مستندات نیز برای بهروز کردن دادههای خود به API نیاز دارند. برای بهروزرسانیهای بهتر و هماهنگسازی شده، میتوان از ابزاری به نام Swagger استفاده کرد. با کمک این ابزار میتوان جزییات هر ای پی آی را به صورت اتومات بهروزرسانی کرد.
یکی دیگر از ویژگی های مثبت رست ای پی آی صادر کردن پیغام خطا است. به این معنی که هنگامی که خطا ایجاد میشود، رست فول ای پی آی با پیغامی که توسعه دهندگان میفرستند، آنها را از این موضوع آگاه میکند.
از جمله مهمترین امتیازات رست فول ای پی آی انعطافپذیری بالای آن است. در صورتی که کلاینت و سرور روی سرورهای دیگر میزبانی شوند، استفاده کنندگان به آسانی قادرند با سرور تعامل داشته و تقاضای خود را بفرستند. به بیان دیگر، رست قادر است چند تماس را نظارت و کنترل نماید. حتی میتواند فرمتهای مختلف اطلاعات را برگرداند و حتی با به کار بستن درست hypermedia دست به تغییراتی بزند که ساختاری باشد. این انعطاف پذیری باعث می شود تا یک ای پی آی ساخته شود که جوابگوی خواسته های کاربر باشد. این موضوع بر خلاف SOAP، REST به ایکس ام ال محدود نمیباشد چراکه میتواند بسته به تقاضای مشتری ایکس ام ال، جیسون و YAML یا هر فرمت دیگری را تغییر دهد.
Quick support