مفهوم REST ful API
در پست قبل با مفهوم API آشنا شدیم؛
حال میخواهیم با مفاهیم ذیل نیز آشنا شویم:
- REST
- REST ful API
- Web Service
- SOAP
مفاهیم:
API: دربرگیرنده متدهایی برای ارتباط بین سیستم ها، کتابخانه ها و اپلیکیشن هاست . غالبا با فرمت JSON و گاهی هم XML می باشد.
REST Representational State Transfer:دربرگیرنده اصول و قواعد و قوانینی (راه کارها و روش هایی) برای نقل وانتقال داده ها در شبکه ست.
در واقع ک معماری مبتنی بر استانداردهای وب برای استفاده از HTTP محسوب میشود.
REST ful API: سازوکارهایی برای ارتباط و تعامل با سایر سیستم ها و اپلیکشن هاست اما در قالب یک معماری خاص.
Web Service: در پست قبل توضیح دادیم که : به API هایی که برای تعاملات بین سیستم ها با استفاده از پروتکل های وب HTTP/HTTPS صورت میپذیرد، اصطلاحات وب سرویس میگوییم.
SOAP Simple Object Access Protocol: در مقابل REST از وب سرویس SOAP نام برده میشود، SOAP یک پروتکل استاندارد تحت وب است، پس از قوانین W3C برای ارسال و دریافت درخواستها و پاسخهای سرویسهای وب مورد استفاده قرار میگیرد، استفاده میکند.
معماری REST دارای یکسری ویژگی ها می باشد که شاخص ترین و مهمترین آنها :
- ثبات و یکنواختی این معماری در جای جای API
- عدم برخورداری از سشن در سمت سرور
- بهکارگیری از کدهای وضعیت HTTP
- استفاده از URL برای مشخص ساختن مسیرهای مد نظر
- اِعمال کوئری ها در URL به جای Header پروتکل HTTP
با این تفاسیر، RESTful API ها به خدمت توسعهدهندگان وب آمدهاند تا فرایند توسعه ی وب، ایجاد تجربه ی کاربری بهتر، سهولت در استفاده از APIو نقل و انتقال دادهها از طریق پروتکل HTTPرا امکانپذیر سازند.
میدانیم که: پیامهایی از جنس HTTP حاوی دو بخش هستند که یکی Body نام دارد و دیگری Header. دیتایی که شما قصد دارید از طریق مرورگر خود برای سرور ارسال کنید -مثلا نام کاربری و رمزعبور که وارد فرم لاگین میکنید- در بخش Body قرار میگیرند. Header هم دربرگیرنده ی یکسری متادیتا مثل Encoding، متدهایHTTP و غیره است که این متادیتا ها مشخص کننده ی این مسئله هستند که دیتای قرار گرفته در Body به چه شکل میباید هندل شود!
درواقع متدهای HTTP به سرور دستور میدهند که با دیتایی که از طریق URL برای سرور ارسال میکنید چه کاری انجام دهند؛
مثلاً رکودی حذف شود / دیلیت شود و ...
برای استفاده از REST ful API میتوانیم از 4 متد رایج استفاده کنیم:
GET: دریافت یک آبجکت
POST: ایجاد و ارسال یک آبجکت
DELETE: حذف و از بین بردن یک آبجکت
PUT: تغییر و جایگزین کردن یک آبجکت به جای بجکتی دیگر
منظور از آبجکت درخواست یا Request یا کوئری هست که به سمت سرور ارسال میشود.
غالبا API های ارائه شده هر4 عمل و متد بالا را در اختیار توسعه دهندگان ازحیث امنیت سرورشان، قرار نمیدهند . اکثرا متد GET که دریافت دیتا هست و درواقع پرمیشن Read محسوب میشود را در اختیارشان قرار میدهد.
برای دریافت و استفاده سایر متدها یکسری احرازهویت ها Authentication ها از سوی ارائه دهنده نسبت به توسعه دهنده درخواست و پیگیری میشود.
منابع: