Web Api چیست؟

Web Api چیست؟ قسمت اول

Asp.Net Web Api بستری است که با ما کمک می کند سرویس های مبتنی بر پروتکل HTTP را آسان تر از پیش پیاده سازی کنیم. سرویس گیرنده های زیادی قادر هستند که از امکانات این بستر (Web Api) استفاده نمایند، سرویس گیرنده هایی مانند: مرورگر های وب، دستگاه های موبایل و نرم افزار های دسکتاپ. Web Api یک بستر ایده آل برای پیاده سازی برنامه های مبتنی بر معماری Restful در بستر اصلی DotNet FrameWork است.
زمانی که Api را در بستر Web پیاده سازی می کنیم، از روش های مختلفی برای این کار استفاده می کنیم. این روش ها شامل پروتکل های Http/Rpc می باشند. بدین معنی که این برنامه ها از پروتکل http و امکانات RPC  برای فراخوانی متد های مورد نیاز خود در بستر وب استفاده می کنند. ( RPC به طور اختصار این امکان را برای ما بوجود می آورد تا در محیط شبکه بتوانیم از توابع و متد هایی که بر روی یک کامپیوتر دیگر قرار دارند استفاده کنیم )
افعال/عملیات مورد نیاز برنامه های ما نیز در Web API قرار داده شده اند، اعمالی مانند بازیابی اطلاعات اشیا، درج اشیا، حذف اشیا و بروز رسانی اطلاعات اشیا(منظور از شیء همان آبجکت ها هستند که ممکن است هر چیزی را شامل شوند: محصولات/ تصاویر / اخبار و ...). هر کدام از این اعمال توسط یک آدرس اینترنتی اختصاصی پشتیبانی می شوند.
به یاد داشته باشیم که HTTP تنهای برای خدمت رسانی به صفحات وب به وجود نیامده است، HTTP همچنین برای ایجاد بستری قدرتمند است که سرویس ها و اطلاعات را در معرض استفاده قرار دهد. HTTP مبحث پیچیده ای نیست،بلکه بسیار منعطف و فراگیر است. تقریبا اکثر پلتفرم ها کتابخانه های مرتبط با HTTP را دارند، بنابر این همانطور که کمی بالاتر گفته شد، سرویس های مبتنی بر HTTP به بازه وسیعی از سرویس گیرنده ها خدمات ارائه می کنند.
با وجود اینکه Asp.net Web Api با Asp.Net MVC ارائه شده است، بدین معنی نیست که قادر نیستیم از امکانات آن در Asp.Net Web Forms استفاده کنیم، استفاده از این امکانات در Web Form  ها به همان سادگی استفاده در MVC  است.
با یک نگاه دیگر، Web API نرم افزار های دیگر را قادر می سازد از متد ها و امکاناتی که در برنامه ما تعبیه شده است، استفاده کنند.Web Api شاید مناسبترین بستر برای استفاده در برنامه های مبتنی بر تلفن همراه باشد.
 
از آنجا که Wb Api بر مبنای سرویس های Restful پیاده سازی شده است، بهتر است اشاره کوتاهی به مشخصات سرویس های Restful بکنیم.
سرویس های Restful برای دریافت اطلاعات از سرویس سرور فراخوانی می شوند.
این سرویس ها می توانند اطلاعات را از طریق افعال HTTP ایجاد، ویرایش و حذف کنند.
از URL برای منحصر به فرد سازی موجودیت ها و یا عملیات روی موجودیت ها استفاده می شود.
از افعال HTTP برای تعریف عملیات مورد نیاز برنامه استفاده می کند، همانطور که می دانیم این افعال عبارتند از: Get ، Post ، PUT ، Delete

اشاره کوتاهی نیز به قالب های دیتای مورد استفاده در Web Api  می کنیم.
Web Api نتیجه عملیات را به صورت Json و یا XML برمی گرداند. 
Web Api از Media Formatter (تعریف کننده قالب اطلاعات) استفاده می کند و وظیفه آن موارد زیر است:
- شکل دهی و نحوه ‌Serialize کردن اطلاعات به فرمت‌های خاص را بر عهده دارد ، اطلاعاتی که قرار است سرویس Rest برگرداند.
-  فرمت و قالب دیتا را در هدر مربوط به HTTP تعیین می کند
- فرمت و قالب کلیه اطلاعاتی که قرار هست سرور مشخص کرده و به سمت سرویس گیرنده ارسال کند را نیز تعیین می کند.

Web Api از یک کلاس معینی به نام ApiController و همچنین کلاس RouteTable برای تعیین نحوه ایجاد URL های مورد نیاز خود استفاده می کند که در ادامه به صورت عملی به آنها خواهیم پرداخت.

اگر بخواهیم سیر تغییراتی را که در ساختار سرویس های Restful ای که با WCF پیاده سازی می شدند و سرویس های Restful ای که اکنون با Web Api پیاده سازی می شوند، به وجود آمده را بررسی کنیم به شکل زیر خواهیم رسید:

WCF To Asp.net Web API
 شاید بتوان گفت تعداد خط کدی که برای یک هدف خاص با استفاده از Web Api نوشته می شود کمتر از تعداد خط کدی باشد که با WCF برای رسیدن به همان هدف نوشته می شود.بنابراین به نطر می رسد این کار  نوشتن کد با Web Api را ساده تر کرده است، عدم نیاز به قرار دادن تنظیمات خاص در Web.Config برای تعریف سرویس و binding های مربوطه نیز از درجه سختی کار با Web Api کم کرده است. البته کسانی که سرویس هایی با استفاده از WCF نوشته اند و در برنامه های خود از آنها استفاده می کنند هنوز به آنها پایبند بوده و نیازی هم برای مهاجرت به سمت Web Api ندارند.
در قسمت دوم از این مقاله یک برنامه ساده را با استفاده از این تکنولوژی (Web API) پیاده سازی خواهیم کرد تا توضیحات ارایه شده قابل فهم تر گردند.


منابع:
   
ASP.NET Web API
ASP.NET MVC - Web API



آخرین بروزرسانی
۱۶ اسفند ۱۴۰۲ 
تعداد کلیک
۱۶,۴۷۸

فهرست نظرها و ارسال نظر جدید

نام را وارد کنید
ایمیل را وارد کنید
تعداد کاراکتر باقیمانده: 1000
نظر خود را وارد کنید