API چیست | ابزاری برای توسعه دهنده ها و طراحان سایت
امروزه ارتباطات یک موضوع بسیار مهمی است که باعث خواهد شد شما از یک نقطه به یک نقطه دیگر دنیا در ارتباط باشید. بله این ارتباطات به وسیله تلفن های هوشمند و یا لپ تاب قابل امکان است و شما هیچ محدویدیتی نخواهید داشت حالا ما میخواهیم بفهمیم این ارطباتات چگونه صورت میگیرد.یکی از بهترین راهها استفاده از API است شاید در اگهی های استخدامی شرکت های برنامه نویس یا طراحی سایت را دیده باشید که یکی از موارد آن اشنایی یا مهارت داشت در این زمینه است با من باشید تا با مفهوم API اشنا شوید.
Api چیست؟
یک مسنجری است که یک درخواست رو به یک مسنجر ارسال میکند. و آن سیستم یک response یا یک پاسخی را برای شما ارسال می کند. این واژه به معنی application programming interface است. شما به وسیله api میتوانید بلیط هواپیما رزرو کنید یک میز رستوران را رزرو کنید، سفارش کالایی را بدهیدو … غیره
Api یک موتوری است که در پشت پرده در حال کار کردن است و تمامی اطلاعات مورد نیاز ما رو از سرویس های مختلف به وب سایت یا اپلیکیشن ما انتقال خواهد داد. امروزه سایت های زیادی وجود دارند با موضوع قیمت روز طلا ، نقره ، دلار، نتایج بازی فوتبال وغیره که اساس این پروژه های طراحی سایت با api صورت می گیرد. به زبان ساده api برای ارسال درخواست و جواب می باشد. مثال: فرض کنید وارد رستورانی شده اید و گارسون منوی غذا را جلوی شما می گذارد و شما پس از انتخواب یک درخواست به گارسون میدهید سپس گارسون در جواب شما غذار را برای شما سرور میکند.
مثال: فرض کنید به یک وب سایت خرید بلیط هواپیما رفته اید در آنجا فرمی است که اطلاعات اولیه را از شما می گیره حالا که شما فرم پر می کنید و دکمه اینتر را فشار میدهید این فرم شما وارد دیتابیس آژانس مسافرتی می شود و در آنجا شروع به جستجو می کند تا نتیجه مورد نظر رو به شما نشان دهید.
حالا فرض کنید شما به یک سرویس آنلاین خرید بلیط هواپیما مراجعه کردید یک تفاوتی وجود دارد این دیتابیس به چنیدین سرویس آنلایان متصل شده است حالا سرویس های دیگر بر اساس آن دیتا که شما فرستاده اید جوابی برای شما ارسال خواهد کرد به این میگن مبحث api در وب سایت ها و اپلیکیشن ها.
نکات مهم دیگر
Api ها در هر سایتی و در همه جای دنیا می تواند وجود داشته باشند و قابل دسرس هستند.
قادر به اتصال تکه نرم افزار به سایر نرم افزارها می باشند.و یک داد ستت بین اپلیکشن ها یا وب سرویس خرید بلیط هواپیما در ارتباط باشند تا بهترین نتیجه رو از چندین api به مخاطب نشان دهند و
ساختار آن بصورت ارسال درخواست و دریافت پاسخ خواهد بود.
امنیت api
از آنجایی که api ها برای اپلیکیشن و سایت ها استفاده می شود مورد توجه هکرها قرار گرفته و در نتیجه امنیت موضوع مهمی است . از جمله حملاتی که هکرها استفاده میکنند میتوان به SQL Injection، DDoS، xss، مرد میانی ، دستکاری پارامترها اشاره کرد لازم به ذکر است هر چه که شما به سرویس خود دسرسی بیشتری بدهید باید احتمال حملات بیشتر خواهد.
لذا راه های مقابه با آن نیز میتوان به اهراز هویت چند عامله می باشد که هر کدام مبنای واحدی ندارند استفاده کرد.
از یک سرویس و ادرس دامنه جدا برای دادن سرویس به مشتریان خود استفاده کنید.
مدیریت سرویس api: به این معنا است مدیرانی هستند که به سرویس دهنده و سرویس گیرنده نظارت کامل میکنند تا امنیت سرویس برقرار شود.
استفاده از جریان یا oauth : در این حالت سرویس دیگری وجود دارد که اطلاعات امنیتی خاصی را در دست دارد و کد توکنی را برای کاربر ارسال می کند .
طراحی api
مثلا اگر شما یک شرکت دولتی رزرو بلیط قطار هستید و خودتون میخواهید به دیگران دسرسی بدهید که دیگران از شما بلیطی را بخرند و یا به دیگران بفروشند خیلی بحث مفصلی سات و نیاز به مهارت خاص برنامه نویسی، توجه به انواع الگوریتم ها که باید خیلی با دقت پیداه سازی بشود دارید.
Rest چیست؟
Representational state transfer در واقع برای برنامه نویسان یک سبک معماری برای انتقال داده ها است که بر پروتوکول http یک سری درخواست میفرسته و یک سری داده رو میگیرد. هیچ تفاوتی بین rest و restful وجود ندارد.
توسط rest ما میتوانیم قابلیت حذف و بروزرسانی داده ، قابلیت ایجاد در صورتی که آن سرویس که خدمات ارائه میدهند مجوز لازم را به برنامه نویس داده باشد. حالا ممکنه گرفتن داده از آن دیتابیس به صورت غیر رایگان باشد.
مثل سایت هایی که نرخ ارز، طلا، ارز دیجیتال را نشان میدهند در واقع این سایت ها خود به یک سرویس دیگر هزینهای پرداخت میکنند و قیمت طلا ارز را به لحظه در سایت خود نمایش می دهند.
کارایی و استفاده بسیار ساده تر نسبت به سرویس های پیچیده ای مثل soap دارد و نکته ای که هست api که بر اساس rest هستند هیچ گونه وابستگی به زبان برنامه نویسی ندارند شما می توانید با زبان پایتون ، php ، جاوا، روبی ، جاوا اسکریپت و….زبانهای دیگر که با سرور سرو کار دارند توسط rest اطلاعات رو دریافت کنید.
اما soap وابستگی به زبان php هستند . soap یک اگستنش هایی هستند که شما باید روی سرور فعال کنید تا بر پایه دستورات php بتونید از آن استفاده کنید.
زمانی که از rest استفاده می کنید یک سری پروتوکلhttp استفاده می کنیم حالا یک سری متد داریم که در زیر توضیح داده شده
Get: retrieve data .. resource برای گرفتن دیتا از یک سورس
Post: submit data .. resource ارسال داده به آن منبع
Put: update.. resource به روز رسانی منبع
Delete: delete .. resource پاک کردن اطلاعات از منیع
Head: same as get…doesn’t return body کنترل کردن متادیتاها که کنترل میکنند نحوه رفتار api رو . مثلا اگر شما از ساختار جیسون برای ارسال اطلاعات استفاده میکنیم باید نوع فاییل ارسالی یا دریافتی در بخش Head مشخص کنیم.
Options returns the supported http methods : متد Options پشتیبانی می کنید از متد http که داده ها رو بگیره
حالا اگر بخواهم مثالی در این رابطه بزنم در رابطه از استفاده از این متدها که توسط یک ادرس میتواند به یک اپلیکیشن یا وب سرویسی دسرسی پیدا کند.
Get: http://alloweb.ir/api/course
مثلا اگر اَلو وب یک api نوشته باشه شما اتوسط ادرس بالا شما میتوانید تمامی مقالات آموزش های دست پیدا کنید و تمامی مقالات را در سایت خودتون نمایش بدید فقط کافی ادرس بلد باشید.
Get: http://alloweb.ir/api/course/77
مثلا توسط ادرس بالا شما میتوانید حتی به اطلاعاتی که در لاین 77 وجود دارد دسرسی پیدا کنید.
Post: http://alloweb.ir/api/course/course
توسط متد post اگر من اجازه بدهم شما میتوانید کقالاتی را نیز برای من ارسال کنید اگر اجازه به شما داده شود.
put: http://alloweb.ir/api/api/course/10
مثل حالت اپدیت است مثلا لاین شماره 10 را بروز رسانی کنید که میتونی عنوان ، شماره، قیمت یا هر چیزی باشه.
delete: http://alloweb.ir/api/api/course/10
مثلا در این آدرس میتوانید تمامی اطلاعات را پاک کرد یا فقط لاین 10 رو پاک کنید.
دیدگاهتان را بنویسید