مفهوم کامل و کاربردی RESTFUL API
در این مقاله سعی می شود تمامی نکاتی که در رابطه با مبحث ای پی آی مطرح است را بررسی کنیم اما در ابتدا بهتر است ابتدا خود api را بیشتر بشناسیم.
ای پی آی در واقع یک کانکتور یا وصل کننده است که میتوانند یک زبان را به زبان دیگری متصل کند تا از دیتا های همدیگر استفاده کنند api مخفف
application programming interface می باشد.
برای فهم درست ترای پی آی به این مثال توجه کنید، فرض کنید شما نامه ای برای دوستتان در بارسلونا می نویسید پستچی نامه را از شما تحویل میگیرد و به دوستتان در بارسلون تحویل می دهد فرض کنید که صبر می کند آنجا تا جواب نامه را از دوست تان بگیرد و برای شما پس بیاورد. در اصل دو کلاینت این که شما و دوستتان هستید و در این وسط پستچی به معنای ای پی آی می باشد یعنی همان رابط کاربری اپلیکیشن که باعث شد اطلاعات بین شما و دوستتان رد و بدل شود.

اما نقش api در دنیای وب سایت ها به اینگونه است که فرض کنید وارد یک فروشگاه اینترنتی می شوید پس از انتخاب کردن کالای مورد نظر خود وارد درگاه پرداخت می شوید درگاه پرداخت یک وبسایت کاملا جداگانه از وب سایت اصلی فروشگاه می باشد. پرداخت را در سایت دیگری انجام می دهید اما اطلاعات در وب سایت فروشگاه اینترنتی ما ثبت میشود.ارتباطی که بین این دو وبسایت کاملاً جدا از هم برقرار شده میتواند یکی از مهمترین و پرکاربردترین کاربردهای api شمرده شود.
عموما برای اینکه وب بازدهی سایت خود را بالا ببریم و یا اینکه بتوانیم وبسایت خود را برای پلتفرم های دیگر گسترش بدهیم باید از ای پی آی استفاده کنیم.
در این صورت است که به وبسایت ما می توانند با زبانهای دیگر تعامل سازنده داشته باشد.
به طور مثال وب سایت ما را در نظر بگیرید که از چندین زبان مختلف نگارش شده است. از سمت فرانت اند گرفته از html css تا جاوا اسکریپت و php و…
بهتر از من میدانید که تمام این زبان ها چه زبان برنامه نویسی باشند چه زبان تفسیر شده باید با هم در ارتباط بوده و دیتا های خود را با هم به اشتراک بگذارند بهترین راه حل برای این که بتوانیم پل ارتباطی بین این زبان ها به وجود آوریم همین ای پی آی ها می باشند.
برای ساخت api ها روشها و معماری های متفاوتی وجود دارد یکی از معروف ترین این معماری ها ،معماری restful api نام دارد.
REST مخفف Representational State Transfer ، در واقع مجموعه ای از دستورالعمل ها و قوانینی است برای انتقال داده از زبانی به زبان های دیگر که اگر در ساخت api خود این مجموعه قوانین و دستورالعمل ها را رعایت کنیم در واقع زیر مجموعه ساختار رست فول ای پی آی هستیم.
معماری رست در واقع برای ایجاد ارتباط بین دو کلاینت که از پروتکل های معروفی مانند اچتیتیپی اف تی پی و غیره استفاده می کنند و برای ایجاد، آپدیت، خواندن و نوشتن و یا حتی حذف فایلها روی سرور نیز می توان از آن استفاده کرد.
پس اگر جایی نام ReSTful application را شنیدید بدانید بر پایه معماری رست فول ای پی آی نگارش شده است.

اما معماری رست که ظاهر api را مشخص میکند چه المان هایی دارد:
- Rest تشکیل شده از متدهای HTTP میباشد
- POST: یک درخواست به سمت سرور ارسال میکند.
- GET: تمامی اطلاعاتی که از سمت سرور میآید را دریافت میکند.
- PUT: اطلاعاتی که از قبل ارسال شدهاند را بروزرسانی یا جایگذاری میکند.
- DELETE: همینطور که از نامش پیداست وظیفه حذف تمامی اطلاعات نمایشی منبع هدف را دارد.
- PATCH: متد کمتر شناخته شده از HTTP است اما کار دو متد POST و PUT را انجام میدهد و میتوانید با این متد تغییرات جزئی را ایجاد کنید.
- وضعیت کدها را به ما نمایش میدهد(code status)
- نوع اول: از ۱۰۰ تا ۱۹۹
- نوع دوم: از ۲۰۰ تا ۲۹۹
- نوع سوم: از ۳۰۰ تا ۳۹۹
- نوع چهارم: از ۴۰۰ تا ۴۹۹
- نوع پنجم: از ۵۰۰ تا ۵۹۹
- نوع پاسخها را نیز به نمایش میگذارد.
- ۱XX: پیامهای اطلاعاتی (مثل پیام اطلاعاتی ۱۰۰)
- ۲XX: پیامهای موفقیتآمیز (مثل پیام موفقیت آمیز ۲۰۰)
- ۳XX: تغییر مسیرها (مثل پیام ۳۰۴)
- ۴XX: خطاهایی از سمت کاربر (مثل خطاهای ۴۰۴)
- ۵XX: خطاهایی از سمت سرور (مثل خطای ۵۰۰k)
نکاتی که در بالا گفته شد بیشتر یک امر به back-end کسانی که با زبانهایی مانند php یا asp و سرور کار دارند بیشتر با این مفاهیم درگیر هستند دوستانی که سمت front-end کدنویسی میکنند از این مباحث آشنایی کمتری دارند.
محتوای این api ها کدهایی از JSON . JavaScript Object Notation می باشد.
خداییش با حضور آقا آرسام، تا اینجا رو شاهکار کردم و نوشتم 🙂
در کلاس ها در مورد مفهوم جیسون بسیار صحبت کردهایم اما در کل بدانیم که JSON در عمل آرایه ای از آبجکت ها می باشد که دیتاهای وبسایت ما در آن قرار دارد. برای مثال آدرس کد زیر را باز کنید و یک جی سان در قالب آرایه ای از آبجکت ها می باشد مشاهده بفرمایید
https://jsonplaceholder.typicode.com/posts
اما چگونه api را بر حسب معماری REST بنویسیم:
۱- شما همواره باید برای api خود ورژن تعریف نمایید، مانند http://parsa.ir/api/v1
۲- یکی از مهمترین قوانین رست، جداسازی مقادیر با اسلش میباشد به مثال های زیر توجه کنید
page.php?id=202&date=07112012 :=> query parameters
page/202/07112012/ or /{page}/{id}/{data} :=> REST
۳- استفاده از متد های HTTP که در بالا اشاره شد
جمع بندی:
خوب تا به اینجای کار احتمال زیاد در مورد مفهوم مطالب ارائه شده چیزهایی را یاد گرفته اید اما اگر فرانت اند کار هستید هنوز نحوه ساخت url را یاد نگرفته اید که البته ایرادی نیست به این خاطر که ساخت این آدرس ها بیشتر از سمت بک اند انجام میشود(البته در ری اکت توانایی ساخت url را دارید) ممکن است از شما بخواهند که مقادیری را از api ها استخراج کرده و با استخراج این مقادیر متوجه یک سری مطالب بشوید.
( این قسمت از صحبت های من با دوستان فرانت اند کار هست ) اگر url به شما دادند و گفتند داخل این url مقادیری هست که باید استخراج کنید و مطالبی از آن درک کنید نمونه کدی برای شما می آورند که توسط زبان جاوا اسکریپت بتوانید استخراج کرده و با تکنیک هایی مانند REGX و یا غیره محتوای داخل URL را کاوش کرده و به مفاهیم مربوط به آن دسترسی پیدا کنید.
JavaScript Window Location
window.location.href
returns the href (URL) of the current pagewindow.location.hostname
returns the domain name of the web hostwindow.location.pathname
returns the path and filename of the current pagewindow.location.protocol
returns the web protocol used (http: or https:)window.location.assign()
loads a new document
به طور مثال کد زیر، url صفحه را به شما می دهند و با استخراج مقادیر داخل آن می توانید به دیتا مورد نظر خود دسترسی بگیرید
window.location.href
بهتر است کار با نرم افزار postman را هم یادبگیرید. کار این نرم افزار ساختن انواع API میباشد.
امیدواریم از این مقاله نهایت استفاده را برده باشید و آن را با دوستانتان به اشتراک بگذارید. تیم تولید محتوای مدرسه اینترنتی پرنیان این مقاله را تهیه کرده است.
درباره مدیریت
شما در حال مطالعه یکی از مقالات آموزشی وبلاگ پرنیان بودید. اگر برایتان مفید بود آن را با دوستانتان به اشتراک بگذارید. من پارسا قربانیان و اینجا مدرسه فرانت اند پرنیان، میخواهیم در یک معامله برد برد، با هم به آرزوهایمان برسیم..
نوشته های بیشتر از مدیریتمطالب زیر را حتما مطالعه کنید
6 دیدگاه
به گفتگوی ما بپیوندید و دیدگاه خود را با ما در میان بگذارید.
مثل همیشه عالی
👌👌
مثل همیشه کامل و عالی هست .
اطلاعات خیلی جامع و کامل بود ممنون
خواهش میکنم ♥
خیلی شیوا بیان کردید آفرین
سپاس از شما