علیرضا مغیلان
علیرضا مغیلان
خواندن ۴ دقیقه·۱ سال پیش

Api چیست و در دنیای فرانت اند چگونه استفاده می شود ؟

درود دوستان عزیزم امروز اومدم با یه موضوع جدید و جالب ✌️?

موضوع : Api چی هست و چگونه می توان آن را با جاوا اسکریپ دریافت کرد ؟

API
API


خب موضوع چیه ؟؟ ??

چند وقتی هست که برای یکسری پروژه ها مجبور به گرفتن api و نمایش اطلاعات شدم ، دربارش تحقیق کردم و شروع به کد نویسی کردم ?

سوال اولی که شاید براتون پیش بیاد اینه که اصلا api چی هست ؟ ???

این رو باید بگم که من درباره نوشتن api نمی خواهم صحبتی انجام دهم چون بنده صرفا یک برنامه نویس فرانت اند هستم .✌

در لغت : Application Programming Interface یا همان رابط برنامه نویسی کاربردی است .

یکی از محبوب ترین انواع REST API , API هست که دیتا را در قالب json ارسال و دریافت می کند. چندی پیش در این مورد پستی از یک مقاله برای شما گذاشته بودم.

این هم لینک مراجعه به پست قبلی ???

? https://www.linkedin.com/posts/alireza-moghilan-673a55263_%3F%3F%3F%3F-%3F%3F-%3F%3F%3F%3F-activity-7090665630722314241-iUXx?utm_source=share&utm_medium=member_desktop

حالا Api در عمل چه کاری انجام می دهد ؟

در واقع توسط کلاینت یک سری درخواست (Request) را به سرور ارسال می‌کنیم و توسط API، پاسخ(Response) آن سرور را دریافت می‌کنیم.

این یک تعریف ساده برای api است ارسال یک در خواست و دریافت آن با api

در دنیای فرانت اند Api چه می کند ؟

در دنیای فرانت اند برای نمایش و ثبت اطلاعات استفاده می شد . بهتر است با مثالی، مسئله را شفاف کنم :

✅ می توان تعدادی از اطلاعات مورد نظر « اعم از : عکس ، عنوان ، توضیحات ، قیمت و ... » یک محصول را داخل باکس هایی نمایش داد .

✅ یا اینکه برای ورود کاربر ها استفاده کرد (که این مورد پیشنهاد نمی شود)

✅ ثبت اطلاعات پروفایل

حال که تقریبا با این مفهوم آشنا شده ایم به قسمت دوم موضوع یعنی چگونه در جاوا اسکریپت آن را دریافت کرده و استفاده کنیم می رسیم : ????

ابتدا باید یک url داشته باشیم تا اطلاعات را از آن دریافت کنیم .

من برای آموزش و یادگیری از Api آماده یا جعلی استفاده می کنم که از سایت زیر گرفته شده ?

?https://randomuser.me

url
url

یک متغیر ایجاد می کنیم و مقدارش رو برابر با شی XMLHttpRequest قرار میدهیم .

در انتها از متد های ()open() , send استفاده می کنیم . متد open نیاز به سه پارامتر دارد :

پارامتر اول ، نحوه درخواست .

پارامتر دوم ، url هست که آدرس یک فایل در سرور است .

و پارامتر سوم که می توان آن را در نظر نگرفت true or false ( Asynchronous ) یا همان نامتقارن بودن هست. درخواست های سرور باید به صورت ناهمزمان ارسال شوند.

و در آخر با متد ()send درخواست ارسال می شود .???

بعد از نوشتن کد های بالا پراپرتی onreadystatechange را صدا میزنیم و یک فانکشن به آن پاس می دهیم تا به محض تغییر فانکشن اجرا شود .

داخل آن یک شرط تعریف می کنیم تا وضعیت شی XMLHttpRequest مشخص شود .

بخش اول شرط ?

بخش اول readyState : این خاصیت وضعیت شی XMLHttpRequest را در هر لحظه مشخص می کند . این شی می توان 4 حالت را داشته باشد که بنابر آن یکی از اعداد 0 تا 4 را برمی گرداند :
0_ جوابی برای درخواست دریافت نشده است .
1_ ارتباط با سرور برقرار شده است .
2_ درخواست به سرور رسیده است .
3_ سرور ، در حال پردازش درخواست است .
4_ درخواست بطور کامل انجام شده و پاسخ آماده است .

بخش دوم شرط ?

بخش دوم Status : این پارامتر وضعیت کلی درخواست و شی را مشخص می کند . که می تواند 2 حالت داشته باشد .

1_ 200 : وضعیت بدون مشکل و ایراد است . OK

2_ 400 : پیدا نشدن صفحه . page not found

javascript
javascript


کم کم به دریافت محتوا و نمایش آن نزدیک می شویم .

اول باید با مفهوم responseText آشنا شوید : که پاسخ را به صورت رشته ای دریافت می کند.

و برای تبدیل پاسخ به یک شی باید از JSON.parse استفاده کنیم چون هنگام دریافت داده از یک وب سرور، داده ها همیشه یک رشته هستند .

و بعد از آن نیاز به یک حلقه داریم تا بتوانیم تمام اطلاعات را همانطور که می خواهیم نمایش دهیم .

javascript
javascript

در آخر اگر محتوا و اطلاعات خیلی زیاد باشد می توان آن را به صورت pagination یا صفحه بندی شده نماش داد ، که اگر دوست داشته باشید می تونم براتون یک مقاله در موردش بنویسم .


فایل کامل کدها را از اینجا بردارید ?

?https://github.com/alireza-moghilan/api_fake

حمایت یادتون نره . ❤️


خوشحال می شم که مقاله های قبلی من را مطالعه کنید .

?https://vrgl.ir/VYmA5


apiwebapiطراحی سایتبرنامه نویسیفرانت اند
درود.... علیرضا مغیلان هستم و چند سالی هست که برنامه نویس فرانت اند هستم و عاشق یادگیری هر چیز مربوط بهش ??
شاید از این پست‌ها خوشتان بیاید