شاید شما هم اصطلاح Web API را شنیده باشید و به دنبال آن بودهاید که بدانید API چیست و چه کاربردی دارد؟ تیم پلتفرم دوسویه آنلاین خدمات اقامتی چنلید در این مقاله API را بررسی کرده و دلایل استفاده از آن را توضیح داده است. با ما همراه باشید.
Web API چیست؟
قبل از اینکه بخواهیم سراغ Web API برویم، اجاره بدهید API را بررسی کنیم. طبق تعریف ویکیپدیا API در برنامه نویسی کامپیوتر، یک واسط برنامه نویسی اپلیکیشن، مجموعهای از تعریف زیرروالها، پروتکلها و ابزارها برای ساخت نرم افزار یا اپلیکیشن است.
اگر بخواهیم به زبان سادهتر آن را توضیح دهیم، بهتر است بگوییم API نوعی واسط است که مجموعهای از توابع دارد که به برنامه نویسی اجازه دسترسی به ویژگی خاص یا داده از اپلیکیشن، سیستم عامل و یا سرویسهای دیگر را میدهد.
API مخفف کلمات Application Programming Interface است. API بستری است که به کمک آن، میتوان پروتکلهای HTTP را به صورت خیلی سادهتر پیادهسازی کرد، بستر Asp.Net Web API است. اگر بخواهیم کمی تخصصیتر API را بررسی کنیم، باید بگوییم که Web API یک بستر ایدهآل برای پیادهسازی برنامههای مبتنی بر معماری Restful در بستر اصلی DotNet FrameWork است. بستر Web API از متدهای Post، Delete، Put و Get برای ارتباط با کاربر استفاده میکند. سرویس گیرندههای زیادی میتوانند از امکانات این بستر استفاده کننده از جمله سرویسگیرندههایی مثل: مرورگرهای وب، دستگاههای تلفن همراه و نرم افزارهای دسکتاپ.
پیاده سازی Web API
زمانی که API را در بستر Web پیاده سازی میکنیم، از روشهای مختلفی برای این کار استفاده میکنیم. این روشها شامل پروتکل های Http/RPC هستند. به این معنا که این برنامهها از پروتکل Httpو امکاناتRPC برای فراخوانی متدهای مورد نیاز خود در بستر وب استفاده میکنند. (به طور کلی و خلاصه، RPC این امکان را برای شما بوجود میآورد تا در محیط شبکه بتوانید از توابع و متدهایی که بر روی یک کامپیوتر دیگر قرار دارند استفاده کنیم).
عملیات مورد نیاز برنامهها در Web API قرار داده شدهاند؛ عملیاتی مانند بازیابی اطلاعات اشیاء، درج اشیاء، حذف اشیاء و بروزرسانی اطلاعات اشیاء. هر کدام از این عملیاتها به واسطه یک آدرس اینترنتی اختصاصی پشتیبانی میشوند.
بنابراین، به واسطه Web API افراد مختلف میتوانند از امکانات و متدهای یک برنامه و نرم افزار خاص، برای برنامههای خود استفاده کنند. به طور کلی، مناسبترین بستر برای استفاده از امکانات و متدهای یک برنامه دیگر در اپلیکیشنهای موبایل، استفاده Web API است.
سرویسRestful چیست؟
همانطور که گفته شد، Web API بر مبنای سرویسهای مبتنی بر Restful پیادهسازی شده است، بهتر است توضیحی مختصر درباره این سرویس داشته باشیم. سرویسهای Restful برای دریافت اطلاعات از سرویس سرور فراخوانی میشوند.
این سرویسهای قادر هستند اطلاعات را از طریق افعال Http ایجاد، ویرایش و حذف کنند. همچنین از URL برای منحصر به فرد کردن موجودیتها و یا عملیات روی موجودیتها استفاده میشود.
همچنین از افعال HTTP برای تعریف عملیات مورد نیاز برنامه استفاده میکند، همانطور که میدانیم این افعال عبارتند از: Get ، Post ، PUT ، Delete .
مشخصات قالبهای دیتا در Web API
تا اینجا با Web API آشنا شدید. در ادامه میخواهیم اشارهای به قالبهای دیتای مورد استفاده Web API کنیم. Web API نتیجه عملیات را به صورت Json و یا XML برمیگرداند.
Web API از Media Formatter (تعریف کننده قالب اطلاعات) استفاده میکند که وظیفه آن عبارت است از:
- شکل دهی و نحوه Serialize کردن اطلاعات به فرمتهای خاص را بر عهده دارد ، اطلاعاتی که قرار است سرویس Rest برگرداند.
- فرمت و قالب دیتا را در هدر مربوط به HTTP مشخص و تعیین میکند.
- همچنین فرمت کلیه اطلاعاتی که سرور مشخص کرده و قرار است به سمت سرویس گیرنده ارسال کند را تعیین میکند.
- Web API از یک کلاس معینی به نام ApiController و همچنین کلاس RouteTable برای تعیین نحوه ایجاد URL های مورد نیاز خود استفاده میکند.
- تعداد خطوط کدهایی که توسط فریم ورک Web API نوشته شده است، نسبت به سایر فریم ورکها بسیار کمتر است. همچنین نوشتن کد با استفاده از Web API بسیار راحت است.
- علاوه بر این، در Web API خیلی راحتتر میتوان با binding ها ارتباط برقرار کرده و این مورد سختی کار با Web API کاهش میدهد.
دلایل و مزایای استفاده از Web API
حال این سؤال مطرح میشود که چرا باید از Web API استفاده کنیم؟ همانطور که گفته شد، Web API دارای مشخصات و ویژگیهای خاص و منحصر به فردی است که آن را از سایر فریم ورکها متمایز کرده است.
برای پاسخ به این سؤال که چرا از Web API استفاده کنیم، باید بگوییم به دلیل اینکه از JSON و XML و هر فرمت دیگری که در HTTP پشتیبانی میشود، به راحتی پشتیبانی میکند. علاوه بر استفاده راحت و آسان از Web API، باید گفت در این بستر، نیاز به توضیح درمورد اطلاعات نبوده و علاوه بر آن، تمام توابع Http را پشتیبانی میکند.
همچنین امکانات MVC مانند فیلترگذاری قبل یا بعد از اجرا و تمام عملیاتی که در MVC قابل اجراست را پشتیبانی میکند.
با توجه به خدمات HTTP ، میتوان این سرویس را در اختیار همه کاربران قرار داد تا هر کاربری بتواند از آن استفاده کند. امروزه، کاربران فقط به استفاده از مرورگرها محدود نمیشوند، افراد میخواهند نرم افزار خود را در موبایل، تبلت و دیگر دستگاهها اجرا کنند. بنابراین Web API برای این دستگاهها مناسب است.
Web API به صورت خودکار قدرت HTTP را به دست میآورد. به این معنی که قدرت catching ، تمام متدهای Action مانند Post و Get و… را به دست میآورد.
ساختار Web API مشابه MVC است. بنابراین اگر پروژه خود را در MVC اجرا کنید، بهترین گزینه برای ایجاد سرویس HTTP در Web API است.
موارد استفاده از WEB API
- درصورت استفاده از net framework نسخه 4.0 و یا بالاتر، بهترین گزینه استفاده از Web API است.
- اگر میخواهید سرویسی که فقط از پروتکلهای http پشتیبانی کند، بسازید، بهتر است از Web API برای این منظور استفاده کنید.
- مناسبترین گزینه برای ایجاد سرویسهای Restful، استفاده از Web API است.